Been There, Done That

The government arguments in the Microsoft antitrust case introduce the concept of what they call "middleware". This is a large layer of software that sits on top of the operating system and exposes a comprehensive application programming interface. Applications written to the middleware interface will run on any operating system that the middleware has been ported to run on.

The DOJ identifies Netscape Navigator and Sun's Java as an example of a middleware platform. They fail to note that the idea of middleware goes back almost as long as there have been computers. In 1969 IBM introduced a business transaction processing system called CICS. It provided a comprehensive application runtime for the short business transactions needed to enter an order or query an account. CICS ran on top of all three IBM mainframe business operating systems and was later extended to IBM minicomputers. In the '70s and '80s it was the single most successful software system in existence.

The most extensive middleware development project associated with the Personal Computer era was initiated back in 1988 by IBM. It was called Systems Application Architecture (SAA). IBM had a lot of different operating systems that ran on mainframes, midrange computers, and desktops. Companies complained that a programmer trained on mainframe programming had to be retrained to work on a PC, and visa versa. The solution would be a large middleware layer that would create a common API to allow the same application program to work on mainframes, AS/400 minicomputers, and OS/2 desktops.

One of the SAA components was called Dialog Manager. It provided program support for the "panels" that prompt a user to enter data like name, address, etc. IBM is a big fan of international standards. It looked around for an existing standard that could support this programming interface. It adopted the Standard Generalized Markup Language (SGML). At the time, nobody outside of Europe used SGML. It had a funny syntax. Paragraphs, input fields, and other page elements were identified by something called "tags". To begin a paragraph, for example, you coded the tag "<P>" and at the end coded "</P>".

Dialog Manager was supported in OS/2 releases 1.2 and 1.3. IBM then discontinued support, declaring that this sort of thing was not powerful enough and would never be successful.

A few years later, a programmer named Tim Berners-Lee was trying to solve a slightly different version of the same problem. Since he worked in Europe (at CERN), he was aware of SGML and used it as the model for a language designed to interconnect research reports at his Physics Lab. The language he created is called HTML, and his project became the World Wide Web. HTML has the same tags, and in HTML every paragraph also begins with "<P>" and ends in "</P>". There is a wide overlap between HTML and the Dialog Tag Language of SAA.

The Dialog Manager wasn't a Web browser. The Web would not be invented for another five years. This, however, looks at a Web browser as a tool for displaying documents distributed through the Internet.

The DOJ charge claiming Monopoly Maintenance, however, defines the Web browser as a middleware component. In the context of that charge, we are interested in the programming interfaces that it exposes and the way that applications can use it to manage their user interface. This charge looks at the use of the Web browser as a Dialog Manager.

The Microsoft Web Control today and the IBM Dialog Manager of 1989 do approximately the same thing, in the same place, in the same way, and based on the same standards. If someone started out today to reinvent Dialog Manager, they would certainly start with Web technology. Netscape/Mozilla has done nearly this by creating a user interface language they call XUL.

The DOJ in its case, and Judge Jackson in his findings of fact, makes a big deal of the point that Web functions are built into the system and cannot be uninstalled from Windows. They suggest that this is unique because all the other standalone browsers can be uninstalled. However, Dialog Manager was a standard component of SAA and OS/2 1.3. It also could not be removed. Once you create a component that is required by lots of application programs, many of which provide system support. Such a component is never uninstallable.

This leaves, however, a much bigger puzzle. How can two massively financed legal teams fight a three year court case with such sloppy scholarship? The only plausible answer is that neither team of lawyers was willing to stop and consult competent computer professionals on either technical or historical issues. Any subsequent scholarly analysis of the case should not make the same mistake.