One of my clients runs such a configuration. 20 users, 5 satellite offices all connected to a server with a single private DSL line. A few of the users may connect by VPN when not in one of the offices. All 20 users have a thin client terminal in the office, there are 5 workstations and an additional 6 laptops. The server hosts all MSOffice applications plus mail and some additional software for the 20 users. The deployment initially used 128K ISDN lines, NT4 Server with 1 Gigabyte of RAM and WinCE terminals (NT4 on workstations/Laptops) running Office 97. Performance was marginal with the number of users. The upgrade to DSL made the application entirely viable. The system is now being 'upgraded' to Office 2003 and hosted by Win 2003 Server where I have access to a test server running this configuration.
I had written some custom drag and drop code that worked very well over a LAN but the screen performance is quite choppy in a Terminal environment. We also had a bug in the terminal configuration that degraded screen performance when Outlook or Access was once loaded. Former terminals did not have this issue but even with them, trying to extend a selection in Word or Excel often resulted in the screen scrolling thousands of rows or columns (or a dozen pages) before the user could react to the scroll. Powerpoint (and any graphics based programs really sucked with the ISDN connection) and if you try to run an MPG file, in a 30 second clip you might get 5 'screen shots' to a movie. Of course there is no sound and color depth is limited to 256 bit. A really huge issue for us was that there is no ability to transfer files between a terminal client computer and the server but I understand that this is a limitation of Microsoft's implementation of Terminal Services. Apparently other vendors have this capability.
Overall, there is no doubt that the data retrieval is very fast and that complex queries are many times faster than the conventional LAN environment from which the system was upgraded. It was necessary to have a server in each of the five offices and use a two level synchronization to get updates from laptops to their servers and from the servers to a consolication server. For most users who were connected only to their local server, no real difference in performance was noted, but in that case, no office had more than 6 concurrent users whereas the new environment hosts more than 20 (terminal plus a few workstations on occasion) to a server.
How well such an environment will perform is subject to many variables. I had initally written the application to cache much data locally (getrows to populate arrays to fill lookups with callback functions) knowing that caching to virtual RAM on a local machine was many times faster than the LAN. This approach is counterproductive in a Terminal environment.
Another alternative is to host an Access application on an ASP server which also makes it 'client-server'.
Ciao
Jürgen Welz
Edmonton AB Canada
[email protected]