Friday, July 27, 2007

An overview of Lotus Notes deployment on Windows Terminal Services and Citrix

A few people have been asking about this so I thought I'd compile it once. I have written on the subject of deploying Notes on Windows Terminal Services before, so the intent here is to give a somewhat high level overview of thin client infrastructures and how Notes fits into them. If you have any additional questions please feel free to ask and I'll do my best to respond.

A brief history of Windows Terminal Services (WTS) and Citrix

Thin client computing isn't anything new. The old mainframe terminal scenario was the same thing. A network device connected to the mainframe, which had everything the end user needed. The terminal simply took the stream of data from the mainframe and displayed it on the screen.

In the mid 80's GUI's were starting to take over the business world and OS/2 was one of the first to be embraced by businesses. Ed Iacobucci was a developer on the IBM OS/2 team who was working on a multi-user version of OS/2. IBM wasn't interested, so in the late 80's Ed left to form his own company, which he called Citrix.

Fast forward to the early 90's when Microsoft released Windows NT, their first 32-bit server OS. Microsoft wasn't interested in doing a multi-user OS either, but they were intrigued enough that in 1994 they gave Citrix a copy of the Windows NT 3.51 source so Citrix could deliver a third-party solution. Shortly afterwards Citrix released WinFrame, which let multiple end users log into a server and run installed applications simultaneously. This was so successful that in 1997 Microsoft licensed Citrix technology so they could incorporate it into Windows NT. This yielded the release of Windows NT 4.0 Terminal Services Edition in 1998.

Ultimately this paved the way for the more robust implementation of WTS in Windows 2000 Server and Windows Server 2003. It's also used as a basis for remote desktop sharing in Windows XP.

The difference between WTS and Citrix

So now you know that WTS originally came from Citrix so you may be wondering what the differnce is. The biggest difference is the protocol. Microsoft uses RDP while Citrix uses ICA. The ICA protocol has better compression and performance than RDP. Citrix also offers special packages for delivering web apps and for working with WAN or slow data links. I will admit I have no experience with Citrix. In the environment I support we did not determine a need for the extra features Citrix brings to the table. (Maybe my friend Eric will chime in and offer some of his reasoning.)

Deploying Lotus Notes on WTS and Citrix (the old way)

Since multi-user Windows OS's didn't exist until 1998, this is a pretty new segment of the market. As such many application vendors were caught off guard by its meteoric rise in popularity. Lotus was no exception.

As you know, all configuration files are in the Notes data directory, such as C:\Program Files\lotus\notes\data. This poses a problem in a shared environment since you can't have everyone using the same notes.ini. The solution in Notes R5 was to map a drive letter, such as H:, and put the data directory there, then map the same drive letter for every user who logged in and copy the base Notes data directory.

This worked, but it was painful. First, upgrades are a nightmare. You have to install the new version of Notes then copy all the files in the data directory to all the individual user data directories. This could be scripted, but it's still a pain and had to be done during off hours. Second, the Notes client accesses the notes.ini file a lot. If something happens to delay the Notes client's access, the client will throw up errors or even crash. Third, it's a tremendous waste of space to have the same files duplicated for every user.

... and the new way...

IBM introduced the multi-user setup option starting with Notes 6. This would install the program executables to C:\Program Files, but store all user-specific information in the user's profile on the server, such as C:\Documents and Settings\crobinson. This addressed every problem with the previous solution. Upgrades were greatly simplified and no files had to be manually copied, everything was running locally so there were no network timeout issues, and there was much less duplication.

What about Notes 8?

That's a big unknown, actually. Notes 8 comes in two flavors: Standard and Basic. The Basic client is the traditional C++ implementation. It can be deployed just as Notes 6 or 7 were and is supported on WTS and Citrix.

The Standard client deploys the Lotus Expeditor framework, which is an Eclipse Rich Client Platform framework. This is the one getting all the press and it is not supported in a multi-user OS configuration yet. Lotus does plan to support it with Notes 8.0.1. Numerous people have tried to get Notes 8 Standard running on WTS or Citrix and to the best of my knowledge no one has succeeded yet. It will be interesting to see how IBM/Lotus achieves that.

Implementing Windows Terminal Server and Citrix MetaFrame on IBM eServer xSeries Servers
Windows Networking - Overview of Terminal Services
Lotus Notes/Domino 8 Public Beta forum


  1. Thanks for your efforts here Charles!

    As soon as I have read through fully, I'll let you know if I have any questions!

  2. I would love to learn more about Citrix and multi-user Notes, could you expand on that subject or provide links?



  3. Lars, what in particular are you looking for? I posted instructions (linked from this post) for installing Notes on Windows Terminal Services, which is the same as installing it for Citrix.