Strengthening The PFJ
|
[Text body exceeds maximum size of message body (8192 bytes). It has been converted to attachment.] To: microsoft.atr@usdoj.gov To: Renata B. Hesse 28 January 2002 Ms. Hesse, As a software engineer with 20 years' experience developing software for Unix, Windows, Macintosh, Sincerely, On the Proposed Final Judgment in United States v. Microsoft
IntroductionAs a software engineer with 20 years' experience developing software for Unix, Windows, Macintosh, and Linux, I'd like to comment on the Proposed Final Judgment in United States v. Microsoft.According to the Court of Appeals ruling, "a remedies decree in an antitrust case must seek to 'unfetter a market from anticompetitive conduct', to 'terminate the illegal monopoly, deny to the defendant the fruits of its statutory violation, and ensure that there remain no practices likely to result in monopolization in the future" (section V.D., p. 99). Attorney General John Ashcroft seems to agree; he called the proposed settlement "strong and historic", said that it would end "Microsoft's unlawful conduct," and said "With the proposed settlement being announced today, the Department of Justice has fully and completely addressed the anti-competitive conduct outlined by the Court of Appeals against Microsoft." Yet the Proposed Final Judgment allows many exclusionary practices to continue, and does not take any direct measures to reduce the Applications Barrier to Entry faced by new entrants to the market. The Court of Appeals affirmed that Microsoft has a monopoly on Intel-compatible PC operating systems, and that the company's market position is protected by a substantial barrier to entry (p. 15). Furthermore, the Court of Appeals affirmed that Microsoft is liable under Sherman Act § 2 for illegally maintaining its monopoly by imposing licensing restrictions on OEMs, IAPs (Internet Access Providers), ISVs (Independent Software Vendors), and Apple Computer, by requiring ISVs to switch to Microsoft's JVM (Java Virtual Machine), by deceiving Java developers, and by forcing Intel to drop support for cross-platform Java tools. The fruits of Microsoft's statutory violation include a strengthened Applications Barrier to Entry and weakened competition in the Intel-compatible operating system market; thus the Final Judgment must find a direct way of reducing the Applications Barrier to Entry, and of increasing such competition. In the following sections I outline the basic intent of the proposed final judgment, point out areas where the intent and the implementation appear to fall short, and propose amendments to the Proposed Final Judgment (or PFJ) to address these concerns. Please note that this document is still evolving. Feedback is welcome; to comment on this document, please join the mailing list at groups.yahoo.com/group/ms-remedy, or email me directly at dank-ms@kegel.com. Understanding the Proposed Final JudgmentIn crafting the Final Judgment, the judge will face the following questions:
PFJ Section III: Prohibited Conduct
PFJ Section VI: Definitions
Considering all of the above, one should read the detailed terms of the Proposed Final Judgment, and ask one final question: In the sections below, I'll look in more detail at how the PFJ deals with the above questions. How should terms like "API", "Middleware, and "Windows OS" be defined?The definitions of various terms in Part VI of the PFJ differ from the definitions in the Findings of Fact and in common usage, apparently to Microsoft's benefit. Here are some examples:Definition A: "API"The Findings of Fact (¶ 2) define "API" to mean the interfaces between application programs and the operating system. However, the PFJ's Definition A defines it to mean only the interfaces between Microsoft Middleware and Microsoft Windows, excluding Windows APIs used by other application programs. For instance, the PFJ's definition of API might omit important APIs such as the Microsoft Installer APIs which are used by installer programs to install software on Windows.Definition J: "Microsoft Middleware"The Findings of Fact (¶ 28) define "middleware" to mean application software that itself presents a set of APIs which allow users to write new applications without reference to the underlying operating system. Definition J defines it in a much more restrictive way, and allows Microsoft to exclude any software from being covered by the definition in two ways:
Definition K: "Microsoft Middleware Product"Definition K defines "Microsoft Middleware Product" to mean essentially Internet Explorer (IE), Microsoft Java (MJ), Windows Media Player (WMP), Windows Messenger (WM), and Outlook Express (OE).The inclusion of Microsoft Java and not Microsoft.NET is questionable; Microsoft has essentially designated Microsoft.NET and C# as the successors to Java, so on that basis one would expect Microsoft.NET to be included in the definition. The inclusion of Outlook Express and not Outlook is questionable, as Outlook (different and more powerful than Outlook Express) is a more important product in business, and fits the definition of middleware better than Outlook Express. The exclusion of Microsoft Office is questionable, as many components of Microsoft Office fit the Finding of Fact's definition of middleware. For instance, there is an active market in software written to run on top of Microsoft Outlook and Microsoft Word, and many applications are developed for Microsoft Access by people who have no knowledge of Windows APIs. Definition U: "Windows Operating System Product"Microsoft's monopoly is on Intel-compatible operating systems. Yet the PFJ in definition U defines a "Windows Operating System Product" to mean only Windows 2000 Professional, Windows XP Home, Windows XP Professional, and their successors. This purposely excludes the Intel-compatible operating systems Windows XP Tablet PC Edition and Windows CE; many applications written to the Win32 APIs can run unchanged on Windows 2000, Windows XP Tablet PC Edition, and Windows CE, and with minor recompilation, can also be run on Pocket PC. Microsoft even proclaims at www . microsoft.com/windowsxp/tabletpc/tabletpcqanda.asp:"The Tablet PC is the next-generation mobile business PC, and it will be available from leading computer makers in the second half of 2002. The Tablet PC runs the Microsoft Windows XP Tablet PC Edition and features the capabilities of current business laptops, including attached or detachable keyboards and the ability to run Windows-based applications."
and
Pocket PC: Powered by Windows
Microsoft is clearly pushing Windows XP Tablet PC Edition and Pocket PC in places (e.g. portable computers used by businessmen) currently served by Windows XP Home Edition, and thus appears to be trying to evade the Final Judgment's provisions. This is but one example of how Microsoft can evade the provisions of the Final Judgment by shifting its efforts away from the Operating Systems listed in Definition U and towards Windows XP Tablet Edition, Windows CE, Pocket PC, X-Box, or some other Microsoft Operating System that can run Windows applications.
How should the Final Judgment erode the Applications Barrier to Entry?The PFJ tries to erode the Applications Barrier to Entry in two ways:
By not providing some aid for ISVs engaged in making Windows-compatible operating systems, the PFJ is missing a key opportunity to encourage competition in the Intel-compatible operating system market. Worse yet, the PFJ itself, in sections III.D. and III.E., restricts information released by those sections to be used "for the sole purpose of interoperating with a Windows Operating System Product". This prohibits ISVs from using the information for the purpose of writing operating systems that interoperate with Windows programs. How should the Final Judgment be enforced?The PFJ as currently written appears to lack an effective enforcement mechanism. It does provide for the creation of a Technical Committee with investigative powers, but appears to leave all actual enforcement to the legal system.What information needs to be released to ISVs to encourage competition, and under what terms?The PFJ provides for increased disclosure of technical information to ISVs, but these provisions are flawed in several ways:1. The PFJ fails to require advance notice of technical requirementsSection III.H.3. of the PFJ requires vendors of competing middleware to meet "reasonable technical requirements" seven months before new releases of Windows, yet it does not require Microsoft to disclose those requirements in advance. This allows Microsoft to bypass all competing middleware simply by changing the requirements shortly before the deadline, and not informing ISVs.2. API documentation is released too late to help ISVsSection III.D. of the PFJ requires Microsoft to release via MSDN or similar means the documentation for the APIs used by Microsoft Middleware Products to interoperate with Windows; release would be required at the time of the final beta test of the covered middleware, and whenever a new version of Windows is sent to 150,000 beta testers. But this information would almost certainly not be released in time for competing middleware vendors to adapt their products to meet the requirements of section III.H.3, which states that competing middleware can be locked out if it fails to meet unspecified technical requirements seven months before the final beta test of a new version of Windows.3. Many important APIs would remain undocumentedThe PFJ's overly narrow definitions of "Microsoft Middleware Product" and "API" means that Section III.D.'s requirement to release information about Windows interfaces would not cover many important interfaces.4. Unreasonable Restrictions are Placed on the Use of the Released DocumentationISVs writing competing operating systems as outlined in Findings of Fact (¶52) sometimes have difficulty understanding various undocumented Windows APIs. The information released under section III.D. of the PFJ would aid those ISVs -- except that the PFJ disallows this use of the information. Worse yet, to avoid running afoul of the PFJ, ISVs might need to divide up their engineers into two groups: those who refer to MSDN and work on Windows-only applications; and those who cannot refer to MSDN because they work on applications which also run on non-Microsoft operating systems. This would constitute retaliation against ISVs who support competing operating systems.5. File Formats Remain UndocumentedNo part of the PFJ obligates Microsoft to release any information about file formats, even though undocumented Microsoft file formats form part of the Applications Barrier to Entry (see "Findings of Fact" ¶20 and ¶ 39).6. Patents covering the Windows APIs remain undisclosedSection III.I of the PFJ requires Microsoft to offer to license certain intellectual property rights, but it does nothing to require Microsoft to clearly announce which of its many software patents protect the Windows APIs (cf. current practice at the World Wide Web Consortium, http://www.w3.org/TR/patent-practice). This leaves Windows-compatible operating systems in an uncertain state: are they, or are they not infringing on Microsoft software patents? This can scare away potential users, as illustrated by this report from Codeweavers, Inc.:When selecting a method of porting a major application to Linux, one prospect of mine was comparing Wine [a competing implementation of some of the Windows APIs] and a toolkit called 'MainWin'. MainWin is made by Mainsoft, and Mainsoft licenses its software from Microsoft. However, this customer elected to go with the Mainsoft option instead. I was told that one of the key decision making factors was that Mainsoft representatives had stated that Microsoft had certain critical patents that Wine was violating. My customer could not risk crossing Microsoft, and declined to use Wine. I didn't even have a chance to determine which patents were supposedly violated; nor to disprove the validity of this claim.
The PFJ, by allowing this unclear legal situation to continue, is inhibiting the market acceptance of competing operating systems.
Which practices towards OEMs should be prohibited?The PFJ prohibits certain behaviors by Microsoft towards OEMs, but curiously allows the following exclusionary practices:Section III.A.2. allows Microsoft to retaliate against any OEM that ships Personal Computers containing a competing Operating System but no Microsoft operating system. Section III.B. requires Microsoft to license Windows on uniform terms and at published prices to the top 20 OEMs, but says nothing about smaller OEMs. This leaves Microsoft free to retaliate against smaller OEMs, including important regional 'white box' OEMs, if they offer competing products. Section III.B. also allows Microsoft to offer unspecified Market Development Allowances -- in effect, discounts -- to OEMs. For instance, Microsoft could offer discounts on Windows to OEMs based on the number of copies of Microsoft Office or Pocket PC systems sold by that OEM. In effect, this allows Microsoft to leverage its monopoly on Intel-compatible operating systems to increase its market share in other areas, such as office software or ARM-compatible operating systems. By allowing these practices, the PFJ is encouraging Microsoft to extend its monopoly in Intel-compatible operating systems, and to leverage it into new areas. Which practices towards ISVs should be prohibited?Sections III.F. and III.G. of the PFJ prohibit certain exclusionary licensing practices by Microsoft towards ISVs.However, Microsoft uses other exclusionary licensing practices, none of which are mentioned in the PFJ. Several of Microsoft's products' licenses prohibit the products' use with popular non-Microsoft middleware and operating systems. Two examples are given below. 1. Microsoft discriminates against ISVs who ship Open Source or Free Software applicationsThe Microsoft Windows Media Encoder 7.1 SDK EULA states... you shall not distribute the REDISTRIBUTABLE COMPONENT in conjunction with any Publicly Available Software. "Publicly Available Software" means each of (i) any software that contains, or is derived in any manner (in whole or in part) from, any software that is distributed as free software, open source software (e.g. Linux) or similar licensing or distribution models ... Publicly Available Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models similar to any of the following: GNU's General Public License (GPL) or Lesser/Library GPL (LGPL); The Artistic License (e.g., PERL); the Mozilla Public License; the Netscape Public License; the Sun Community Source License (SCSL); ...
Many Windows APIs, including Media Encoder, are shipped by Microsoft as add-on SDKs with associated redistributable components. Applications that wish to use them must include the add-ons, even though they might later become a standard part of Windows. Microsoft often provides those SDKs under End User License Agreements (EULAs) prohibiting their use with Open Source or Free Software applications. This harms ISVs who choose to distribute their applications under Open Source or Free Software licenses; they must hope that the enduser has a sufficiently up-to-date version of the addon API installed, which is often not the case.
Applications potentially harmed by this kind of EULA include the competing middleware product Netscape 6 and the competing office suite StarOffice; these EULAs thus can cause support problems for, and discourage the use of, competing middleware and office suites. Additionally, since Open Source or Free Software applications tend to also run on non-Microsoft operating systems, any resulting loss of market share by Open Source or Free Software applications indirectly harms competing operating systems. 2. Microsoft discriminates against ISVs who target Windows-compatible competing Operating SystemsThe Microsoft Platform SDK, together with Microsoft Visual C++, is the primary toolkit used by ISVs to create Windows-compatible applications. The Microsoft Platform SDK EULA says:"Distribution Terms. You may reproduce and distribute ... the Redistributable Components... provided that (a) you distribute the Redistributable Components only in conjunction with and as a part of your Application solely for use with a Microsoft Operating System Product..."
This makes it illegal to run many programs built with Visual C++ on Windows-compatible competing operating systems.
By allowing these exclusionary behaviors, the PFJ is contributing to the Applications Barrier to Entry faced by competing operating systems. Which practices towards large users should be prohibited?The PFJ places restrictions on how Microsoft licenses its products to OEMs, but not on how it licenses products to large users such as corporations, universities, or state and local governments, collectively referred to as 'enterprises'. Yet enterprise license agreements often resemble the per-processor licenses which were prohibited by the 1994 consent decree in the earlier US v. Microsoft antitrust case, in that a fee is charged for each desktop or portable computer which could run a Microsoft operating system, regardless of whether any Microsoft software is actually installed on the affected computer. These agreements are anticompetitive because they remove any financial incentive for individuals or departments to run non-Microsoft software.Which practices towards end users should be prohibited?Microsoft has used both restrictive licenses and intentional incompatibilities to discourage users from running Windows applications on Windows-compatible competing operating systems. Two examples are given below.1. Microsoft uses license terms which prohibit the use of Windows-compatible competing operating systemsMSNBC (a subsidiary of Microsoft) offers software called NewsAlert. Its EULA states"MSNBC Interactive grants you the right to install and use copies of the SOFTWARE PRODUCT on your computers running validly licensed copies of the operating system for which the SOFTWARE PRODUCT was designed [e.g., Microsoft Windows(r) 95; Microsoft Windows NT(r), Microsoft Windows 3.x, Macintosh, etc.]. ..."
Only the Windows version appears to be available for download. Users who run competing operating systems (such as Linux) which can run some Windows programs might wish to run the Windows version of NewsAlert, but the EULA prohibits this.
MSNBC has a valid interest in prohibiting use of pirated copies of operating systems, but much narrower language could achieve the same protective effect with less anticompetitive impact. For instance, "MSNBC Interactive grants you the right to install and use copies of the SOFTWARE PRODUCT on your computers running validly licensed copies of Microsoft Windows or compatible operating system."
2. Microsoft created intentional incompatibilities in Windows 3.1 to discourage the use of non-Microsoft operating systemsAn episode from the 1996 Caldera v. Microsoft antitrust lawsuit illustrates how Microsoft has used technical means anticompetitively.Microsoft's original operating system was called MS-DOS. Programs used the DOS API to call up the services of the operating system. Digital Research offered a competing operating system, DR-DOS, that also implemented the DOS API, and could run programs written for MS-DOS. Windows 3.1 and earlier were not operating systems per se, but rather middleware that used the DOS API to interoperate with the operating system. Microsoft was concerned with the competitive threat posed by DR-DOS, and added code to beta copies of Windows 3.1 so it would display spurious and misleading error messages when run on DR-DOS. Digital Research's successor company, Caldera, brought a private antitrust suit against Microsoft in 1996. (See the original complaint, and Caldera's consolidated response to Microsoft's motions for partial summary judgment.) The judge in the case ruledthat "Caldera has presented sufficient evidence that the incompatibilities alleged were part of an anticompetitive scheme by Microsoft."
That case was settled out of court in 1999, and no court has fully explored the alleged conduct.
The concern here is that, as competing operating systems emerge which are able to run Windows applications, Microsoft might try to sabotage Windows applications, middleware, and development tools so that they cannot run on non-Microsoft operating systems, just as they did earlier with Windows 3.1. The PFJ as currently written does nothing to prohibit these kinds of restrictive licenses and intentional incompatibilities, and thus encourages Microsoft to use these techniques to enhance the Applications Barrier to Entry, and harming those consumers who use non-Microsoft operating systems and wish to use Microsoft applications software. Is the Proposed Final Judgment in the public interest?The problems identified above with the Proposed Final Judgment can be summarized as follows:
The above discussion shows that the PFJ does not satisfy the Court of Appeals' mandate. Some of the plaintiff States have proposed an alternate settlement http :// www .naag.org/features/microsoft/ms-remedy_filing.pdf> which fixes many of the problems identified above. The States' proposal is quite different from the PFJ as a whole, but it contains many elements which are similar to elements of the PFJ, with small yet crucial changes. In the sections below, I suggest amendments to the PFJ that attempt to resolve some of the demonstrated problems (time pressure has prevented anything like a complete list of amendments). When discussing amendments, PFJ text is shown indented; removed text in shown in [ Correcting the PFJ's definitionsTime constraints do not permit a complete list of needed changes. As an example, Definition U should be amended to readU. "Windows Operating System Product" means [
Release of InformationBecause any new competitor in the Intel-compatible operating system market must be able to run Windows applications to have a chance in the market, and because Microsoft has traditionally used undocumented Windows APIs as part of the Applications Barrier to Entry, the Final Judgment should provide explicitly for a clear definition of what APIs a competing operating system must provide to run Windows applications. The best way to do this is by submitting the API definitions to a standards body. This was done in 1994 for the Windows 3.1 APIs (see Sun's 1994 press release about WABI 2.0 and the Public Windows Initiative). The result is Standard ECMA-234: Application Programming Interface for Windows (APIW), which provides standard definitions for an essential subset (four hundred and fourty-four out of the roughly one thousand) of the Windows 3.1 APIs; it was rendered mostly obsolete by the switch to Windows 95. The Final Judgment should provide for the creation of something like ECMA-234 for the various modern versions of Windows.Because Microsoft currently claims that it has intellectual property rights that protect the Windows APIs, but has never spelled out exactly which patents cover which APIs, the Final Judgment should force this to be spelled out. To achieve the above goals, the PFJ should be modified as follows: First, Sections III.D and III.E should be amended to remove the restriction on the use of the disclosed information: ... Microsoft shall disclose ... [
Second, a new section IV.E should be created as follows:
E. Establishment of a Windows API Standards Expert Group
Third, in section VI, Definition A should be amended to read
A. ``Application Programming Interfaces (APIs)'' means the interfaces, including any associated callback interfaces, that [
and two new definitions should be added:
V. "Popular Windows Applications" means the top 10 selling applications as reported by NPD Intelect Market Tracking in each of the categories Business, Education, Finance, Games, Personal Productivity, and Reference, plus all Microsoft Middleware Products.
W. "Essential Claims" shall mean all claims in any patent or patent application, in any jurisdiction in the world, that Microsoft owns, or under which Microsoft has the right to grant licenses without obligation of payment or other consideration to an unrelated third party, that would necessarily be infringed by implementation of the Windows APIs Standard Definition by a competing Operating System. A claim is necessarily infringed hereunder only when it is not possible to avoid infringing it because there is no non-infringing alternative for implementing the required portion of the Windows APIs Standard Definition. The following are expressly excluded from and shall not be deemed to constitute Essential Claims:
Prohibition of More Practices Toward OEMs§ III. A. 2. of the Proposed Final Judgment should be amended to read2. shipping a Personal Computer that (a) includes both a Windows Operating System Product and a non-Microsoft Operating System, or (b) will boot with more than one Operating System, or (c) includes a non-Microsoft Operating System but no Windows Operating System Product; or ...
SummaryThis document demonstrates that there are so many problems with the PFJ that it is not in the public interest. It also illustrates how one might try to fix some of these problems. |
||||||||