There is an odd story on internetnews.com, on a discussion between a Microsoft evangelist, Robert Scoble, and the Mozilla and Gnome guys. The former, on his blog, says they should incorporate Microsoft technology into their work, and not to worry, because Longhorn will play nice:
"Microsoft's technology evangelist is offering "friendly" suggestions to Mozilla open source browser groups and calling for more discussion about how the two sides can benefit from upcoming enhancements in Longhorn, the next version of Windows.
"'We're working underneath on the foundation. Longhorn will let you make a new awesome browser that [would] blow away what you're doing today,' Microsoft's Robert Scoble said in an interview with internetnews.com and wrote on his blog.
"Scoble's latest comments came after the desktop development platform group GNOME Foundation and the desktop application group Mozilla Foundation recently discussed how the two open source communities could join forces to fight what they see as a proprietary onslaught from Longhorn.
"Mozilla should talk with Microsoft and it need not worry, Scoble said. Longhorn will play nice."
Since when does Microsoft play nice with competition? Scoble mocks those who are afraid of Microsoft, noting in particular eWeek's article by Steven J. Vaughan-Nichols which said that Longhorn's purpose is to destroy Linux on the desktop. He suggests "a new marketing campaign: 'who can make up the most outrageous thing about Longhorn and get it printed in an industry magazine or pointed to by Slashdot?'" It's all very chummy, like Microsoft didn't have a mean bone in its body. Let's do lunch, Mozilla, and all that.
Some of us recall, however, that Microsoft has twice been found to be guilty of anti-trust violations. So it's hardly paranoia to imagine that Microsoft might have an agenda when offering its technology, which the Mozilla team, happily, turned down, despite Scobie's promises:
"'First of all, Longhorn has a mission not to break existing apps. . . .If you look at what we're doing in Longhorn, we're investing so much in the platform so that people can build new kinds of applications, Internet connectivity, and services. We're putting them in for developers, and I don't mean just Mozilla. I want all developers to talk to us about what we're doing and try to figure out how to make their applications better for their use,' he continued. . . .
"But Brendan Eich, a member of Mozilla Foundation's board of directors and chief technology officer, said it's unlikely the group will take Microsoft's evangelist up on his offer. . . .
"'We especially avoid integrating too much with one operating system when that would lead to non-standard code, protocols, and formats leaking onto the public Internet.'"
A little bit of water under than bridge already. Speaking of APIs reminds us of the US antitrust settlement, and Paul Rouleau takes a look at how that is going.
The Microsoft Communication Protocol Program (MCPP)
~ by Paul Rouleau
Remember the US antitrust settlement? Microsoft was required to disclose the protocols and API required to communicate with the Windows operating system. The compliance program is called the MCPP and information is now available on-line. This includes the licensing terms and conditions as well as the price structure.
The goal of the MCPP is to meet the following stipulation of the Final Judgment which is the legal text of the settlement as approved by the court.
"D. Starting at the earlier of the release of Service Pack 1 for Windows XP or 12 months after the submission of this Final Judgment to the Court, Microsoft shall disclose to ISVs, IHVs, IAPs, ICPs, and OEMs, for the sole purpose of interoperating with a Windows Operating System Product, via the Microsoft Developer Network ("MSDN") or similar mechanisms, the APIs and related Documentation that are used by Microsoft Middleware to interoperate with a Windows Operating System Product. For purposes of this Section III.D, the term APIs means the interfaces, including any associated callback interfaces, that Microsoft Middleware running on a Windows Operating System Product uses to call upon that Windows Operating System Product in order to obtain any services from that Windows Operating System Product. In the case of a new major version of Microsoft Middleware, the disclosures required by this Section III.D shall occur no later than the last major beta test release of that Microsoft Middleware. In the case of a new version of a Windows Operating System Product, the obligations imposed by this Section III.D shall occur in a Timely Manner.
"E. Starting nine months after the submission of this proposed Final Judgment to the Court, Microsoft shall make available for use by third parties, for the sole purpose of interoperating or communicating with a Windows Operating System Product, on reasonable and non-discriminatory terms (consistent with Section III.I), any Communications Protocol that is, on or after the date this Final Judgment is submitted to the Court, (i) implemented in a Windows Operating System Product installed on a client computer, and (ii) used to interoperate, or communicate, natively (i.e., without the addition of software code to the client operating system product) with a Microsoft server operating system product.
Compliance with the Final Judgment is monitored by a joint comittee. Status reports on Microsoft compliance as well as other antitrust documents are available on-line.
The information on the MCPP is stored in a web of nested linked pages. It takes a while to figure the site structure and organisation of content. The links for the server tasks on the left-hand side bar do not respond to Mozilla. I had to resort to Internet Explorer.
The protocols are licensed on a task basis. For example file server is a task, multimedia streaming is another task and print/fax server is a third task. If a licensee wants to create a general purpose server, then he has to license a set of tasks and pay the cumulative licenses. They do provide for a "general server" task but this is nothing better than a "none of the rest" task. Considering that Microsoft have the capability to bundle functionality in its owns servers without a similar increase to their costs, they reserve to themselves some competitive advantage.
The tasks are restrictively defined. For example the operative paragraph of the file server task is:
1. File Server Services consist solely of:
The task definitions can be found in the licensing information by digging under the server tasks links in the left-hand side bar. Notice the reference to the Authorized Windows Client and the Authorized Licensee Implementation. These are defined terms that can be found in the Protocol License Agreement. Let's take a look at what is an Authorized Windows Client.
(a) communicating data packets originating from named computer data files stored in a persistent, randomly-accessible data store on magnetic disk or other equivalent media using a file system format ("Data") between an Authorized Licensee Implementation and an Authorized Windows Client in a manner substantially similar to the manner in which the software code providing network file server functionality in a Covered Windows Server communicates Data with the software code providing Windows Explorer shell and/or network redirector functionality in a Covered Windows Client; and
(b) at Licensee’s option, providing remote administration functionality for the foregoing Data communication functionality, provided that such remote administration functionality does not include any functionality using the NetMeeting protocol, RDP protocol, or similar technology to provide remote desktop control of an application user interface display.
“Authorized Windows Clients” means Covered Windows Clients and the Native* *Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows Millennium edition, and Microsoft Windows NT Workstation desktop operating systems for personal computers, and Native upgrades to the foregoing.
And Covered Windows Clients is another defined term:
“Covered Windows Clients” means the Native Microsoft Windows 2000 Professional, Windows XP Home, and Windows XP Professional desktop operating system products for personal computers and successors to the foregoing.
Now you must have seen the pattern. MCPP licenses only server software performing specific tasks for the benefit of Windows clients. Or at least this is almost so. The April 2004 Joint Status Report on Microsoft Compliance with the Final Judgments mentions that Microsoft has eased the MCPP to allow server-to-server tasks and non Microsoft clients.
As a result of ongoing discussions with the Plaintiffs, Microsoft has expanded the scope of use rights under the license grant in the standard MCPP license. For example, under the revised MCPP license, licensees may use protocols covered by section III.E for certain server-to-server and server-to-non Windows client communications, even though the Final Judgments require Microsoft to grant rights only for communications with Windows desktop operating systems.
This expansion is reflected on the definition of Authorised Licensee Implementation.
“Authorised Licensee Implementation*(s)*” means those portion(s) of individual copies of software developed by or for Licensee that (x) are Server Software or a component of Server Software, and (y) implement MCPP Protocols solely to interoperate or communicate with Authorized Windows Clients to perform one or more Licensed Tasks without changing or interfering with the existing implementation of the MCPP Protocols in any Authorized Windows Client or Microsoft server operating system product. Software that constitutes an Authorized Licensee Implementation under the preceding sentence may also use the MCPP Protocols to respond to requests from Compatible Software only in the same manner as it uses those MCPP Protocols to interoperate or communicate with an Authorized Windows Client for the same Licensed Task(s).
This is an interesting twist. If some other operating system or other client software (dubbed Compatible Software) extends a Microsoft protocol to add features, the Authorised Licensee Implementation is forbidden from supporting the extended features until they are included in Windows. There is also the question of how Compatible Software can come into existence. The MCPP does not provide for client tasks. The Protocol Licensing Agreement requires that the EULA for the Authorised Licensee Implementation include the following clause.
Prohibit reverse engineering, decompiling or disassembling the Authorized Licensee Implementation except as otherwise specifically permitted by applicable law;
So it seems that Compatible Software can only be developped in jurisdiction where law specifically permits reverse engineering.
The Protocol Licensing Agreement also contains a load of confidentiality and audit clauses. A definition caught my eyes.
Any Independent Software that may be owned, possessed or acquired by Licensee is not an Authorized Licensee Implementation under this Agreement and is not subject to the terms and conditions of this Agreement, unless Licensee so elects by written notice to Microsoft. *“*Independent Software*”* means software that implements in full or in part an MCPP Protocol and that Licensee can show was entirely developed, maintained, enhanced and supported either (a) under a separate license agreement for the relevant Microsoft Licensed Intellectual Property, or (b) without intentional or knowing reference to or use of any Microsoft Confidential Information, and by individuals who did not have access to any Microsoft Confidential Information for at least one year prior to such development, maintenance, enhancement and/or support. Independent Software does not include, however, any Received Implementation(s).
Did you notice the "Licensee can show" language? They shift the burden of proof to the Licensee. If during an audit, some Samba implementations are found, the Licensee has the burden of proving no Samba developer had any access to Microsoft confidential information as defined in the MCPP license for one year prior to the developement, maintenance and support of Samba. This is an example. The same logic would apply to software other than Samba.
For a true SCO-like Alice in Wonderland feeling, go check their Royalty Free Protocol License Agreement. Microsoft is using a lot of externally developped protocols such as Apple's Appletalk, Novell IPX, IETF's SNMP, HTTP, ICMP and others. The complete list is a the bottom of the linked page. Microsoft doesn't dare say they own any intellectual property in these protocols, but just in case they have some, you will want to be legit doesn't it? Go get this royalty free just to be safe. You will gain at no extra cost the obligation to put the following notice to your software.
"This source code may incorporate intellectual property by Microsoft Corporation. Our provision of this source code does not include any licenses or any other rights to you under any intellectual property. If you would like a license from Microsoft (e.g. to rebrand, redistribute) you need to contact Microsoft directly (send mail to email@example.com)".