Citrix was young and small enough to realize the importance of the Internet starting in 1993. By 1994, it was obvious that Netscape was going to help make the Internet really popular. The problem that we had was how to participate in this market. We had no TCP/IP support for WinView in 1993. This meant that it was a risky venture for customers to attempt to modify OS/2 TCP/IP stacks to work on WinView.
As it was, there was only a few stacks available for OS/2. The code base we had from Microsoft did not include any TCP/IP code. I can’t remember how I started working on the TCP/IP project. We did things quite a bit differently back then. I suspect that I saw the importance of doing it and I convinced people that we needed to do it. There was not much red tape back then. Our biggest concern was usually about spending too much money and not necessarily the projects we decided to work on.
Early in 1994 I started the analysis phase to find a viable stack. We could not produce our own stack based on the volume of work and time to market. I found two candidates that fit pretty well. After further analysis, I proposed that we use the stack coming from FTP Software. It was the most compatible stack and provided the most support for DOS and Windows applications running in the Virtual DOS Machines.
We quickly came into agreement with FTP and licensed their code to include with WinView. We took what they had and modified its arrangement to best fit with WinView. There was not much need to fix things except for some tricky issues that probably happened on native OS/2 as well. Within a few months we had a working stack and could start testing with our server and clients.
The client was tricky since it was still based on DOS. There was no standard for TCP/IP in DOS so it was necessary to license code (VSL) to create a common layer for different TCP/IP implementations. I remember writing a loader that would try to automatically detect the TCP/IP stacks and load the right VSL modules. The DOS client was then extended to support the VSL interface. The client was designed well enough that it was fairly easy to add a new transport driver for TCP/IP. This was true of the server as well.
I still remember asking John Richardson to get me a assigned port number for incoming ICA connections. He applied for it and within a fairly short time came back with the number that we still have today : 1494. I never would have expected how common knowledge it would become that ICA would listen on 1494. I guess I can be proud enough to say that I made the first TCP/IP connection with ICA.
I had a new problem when it came to testing an Internet based TCP/IP connection. I only had one dialup account. Bruce Chittenden quickly approved another account and it wasn’t long before I could try it for real.
I still remember my cubicle of that time and having the client and server next to each other. The client was connected on one line and the server on another dialup line. I made a connection through the Internet from client to server and it worked better than I expected it would. I remember showing other developers how it worked. The excitement was contagious and word spread to Ed Iacobucci before too long.
The next morning, before I came in, Ed tried the connection for himself. I remember this in part because he accidentally broke my chair.
This would have happened around mid 1994.
The momentum for TCP/IP support was picking up and our new support for WinView came at a very good time. It meant that Web Browsers would work on Windows 3.1 inside WinView for the very first time. It became popular within Citrix to use WinView servers to browse the web.
Around the same time, we were just beginning to embrace the idea of creating a web server. With typical Citrix attitude of that time, we said “Why not?” and put up a very simple web server with a VERY basic web page. The hope was that marketing would get the message and build a good web server. This plan worked but it took longer than expected. I think this was largely due to the Internet being so new and Citrix not knowing how to manage its electronic image.
We went to Networld Interop in late 1994. I have some really good memories from this time. The highlight was winning best of show for our new TCP/IP support. We had managed to ship a product for WinView called “TCP/IP For WinView” in very quick time and also managed to capture some people’s imagination about the future of Citrix.
In 1995, the focus shifted to WinFrame. I worked on porting code for the transport drivers and basically duplicating the work done on WinView for our stack. It wasn’t that hard to do based on the similar design. Luckily NT already had TCP/IP so we didn’t have to do anything special for the server. We did however still need the special VSL code for the DOS clients.
Microsoft was quickly realizing the importance of the web and in 1996 had a major crisis about making everything about the Internet. Internet Explorer was seen as direct competition to Netscape Navigator. Microsoft was pushing ActiveX really hard at that time and it looked like it would be a great idea to produce an ActiveX ICA control. Of course, we would also provide a Netscape Navigator plugin to cover both markets.
I was responsible for producing the first Internet clients for WinFrame. This included repackaging everything to fit the Microsoft model for ActiveX, but also the concept of the ICA file. As most people know, the ICA file is a text file that is really in an INI file format. Before the Internet client, it was impossible to configure the client without modifying local client configuration files. In general, the Internet client was lean and even faster than its compariable larger ICA Client. Most of its settings were embedded and it had far fewer modules to load.
Citrix was granted a patent in 2000 for an application filed by Andy Stergiades and me back in 1995.
I remember in 1995 Bruce Chittenden saying that this idea was worth $100 million. At that time, we had not even thought that kind of money possible. I honestly didn’t believe that he had it right. Now it is obvious that this was probably an understatement.
By late 1996, Microsoft had included the WinFrame ActiveX client as an option to Internet Explorer 3.0. I remember being asked to sign CAB files for different languages. Microsoft supported many more languages than us and therefore needed our co-operation to provide more language coverage.
It wasn’t until much later (1998?) that Microsoft would be able to release their own ActiveX control for RDP. They had shown a keen interest in our ICA ActiveX control probably since early 1996. I remember very well a special demo setup across the Internet for WinFrame. The intended recipient was Bill Gates. I setup the demo but was unable to participate. Afterwards the Microsoft organizer said it had gone well.
Great post. It is always awesome to learn how everything started in the Server Based Computing industry that was thriving during early 90’s. In a way I think Citrix had a much better vision and understanding of the industry/market at that time. I do hope this will get back at Citrix! Keep the good stuff coming. 🙂
Hey Jeff,
Do you know why 1494 was chosen? I am sure there is a story behind waiting to be told…
Regards,
Jonathan
Jonathan,
The story really isn’t that interesting. John Richardson requested a number from IANA and they allocated him a number.
Here’s a sample as of 1995 of what had been allocated:
http://www.sockets.com/services.htm
Regards,
Jeff
Yeah – we use WinView for internal surfing ourselves!
Jeff – remember Stimpy? Stimpy.citrix.com?
hehehe – dragging out some old memories, huh?
Tony
Web Based Remote Access – How to Keep Delivering…
I was fascinated by Jeff Muir’saccount…