Tom Kemp's Centrify Blog

Off-Topic: Mapping Microsoft Windows Server Protocols to Patents

Tuesday, April 22, 2008

As readers of my Centrify blog know, I usually use this blog as a forum to discuss Centrify's vision, customers, why our technology and our approach to interoperability makes sense, etc. In today's blog I am going to go "off topic" and discuss interoperability as it relates to Microsoft's recent announcements re: their "interoperability principals" and analyze how recently published Microsoft protocols map to US patents and US patent applications that are held by Microsoft. You may (or may not) be surprised with some of my analysis at the end of this blog post regarding the percentage of the protocols that are actually covered by US patents and the total number of US patents that are in Windows operating system (client and server) that I was able to deduce based on information published by Microsoft.

The motivation for this blog entry is that given that so much has been written about Microsoft and patents vis a vis Linux and vis a vis the European Commission decision, I found it interesting that it seems no one in the industry has actually rolled up their sleeves and analyzed and published how many patents Microsoft actually holds within their Windows server protocols and what functional areas these patents cover. I think this is key information to know in order to help address Gartner Group's advice to open source developers to "not use Microsoft's [protocol] documentation unless you have rigorous processes to keep track of applicable patents." Having this supplementary information could also benefit commercial software developers by helping them better understand what Microsoft has to offer protocol-wise and what they potentially may need (or may not need) to license from Microsoft.

So I decided to do a bit of research back in late February on this topic and put together a spreadsheet mapping protocols to patents using various public documents on Microsoft's public website. It was more of a project for my own edification and not something I was going to share publicly so I basically filed the spreadsheet away. About two weeks ago I had a conversation with an industry person and, when I mentioned in passing what I had done, he encouraged me to publish my "research" for the benefit of the industry. Not sure how valuable this will really be, but based on his urging this side project is now encapsulated in this blog post. To be candid I don't think this particular blog entry will appeal to my current blog readership of customers, prospects and partners (so for these folks, feel free to ignore this posting and jump to another recent blog post on say replacing NIS), but will probably appeal to people within the industry vs. corporate IT folks.

So here goes ...first I will give an overview of what Microsoft has recently announced in the area of interoperability, then discuss the publication of the protocols and the issues that the publication of these documents may raise, and then conclude with an analysis of the patents found in the Windows server protocols including a big honking spreadsheet that shows mapping of protocols to patents.


Microsoft's February 21, 2008 Announcement re: Interoperability

I am not going to get into the long and winding story about Microsoft and the European Union decision, discuss Microsoft's public comments about how many patents that they think Linux may or may not infringe, weigh in how vendors such as Novell have done deals with Microsoft around interoperability and IP licensing, etc. Instead, I will start the story on February 21, 2008.

On that day Microsoft announced what it called "strategic changes in technology and business practices to expand interoperability." It characterized these changes into a set of "interoperability principles" across its "high-volume business products" (specifically "Windows Vista, Windows Server 2008, SQL Server 2008, Office 2007, Exchange Server 2007 and Office SharePoint Server 2007, and future versions of all of these products"). These "interoperability principles" fall into these four areas:

  1. "Open connections to Microsoft products" – this has to do with the publication of documentation regarding APIs and communication protocols for its high volume products on the Microsoft Developer Network ("MSDN") website. Previously developers had to take a license or pay a royalty to look at this information. Now anyone can simply view all the documentation for free by going to this section of MSDN. But Microsoft also made it clear that intellectual property, namely in the form of patents, is associated with these documents and protocols. In a Q&A with Microsoft executive Bob Muglia, he stated that Microsoft will "allow open source developers to access these protocols for free for development and non-commercial distribution. For commercial distribution, Microsoft will license related patents on reasonable and non-discriminatory terms, at low royalty rates."
  2. "Support for standards" – a commitment by Microsoft to publish its extensions to industry standards and work with developers around standards.
  3. "Data portability" – new APIs for Office to promote user choice among document formats.
  4. "Open engagement" – Microsoft will continue its interoperability council and will create a new open source interoperability initiative that will include developer labs, etc.

Publication of the protocols and the issues that may be raised

Most of the attention regarding this announcement focused on the fact that Microsoft that day published over 30,000 pages of Windows protocol documentation on its MSDN website. In early April 2008 they published an additional 14,000 pages, focusing on Office, SharePoint and Exchange protocols.

Microsoft categorizes the Windows-related protocols as being associated with two "programs":

  • the Microsoft Communications Protocol Program (MCPP) which focuses on client-to-server interaction (this was some of the output emanating from Microsoft vis a vis the US DOJ case against Microsoft). Per this MSDN forum post: "The MCPP package content details Windows Clients to Windows Server protocols for all features"; and
  • the Work Group Server Protocol Program (WSPP) which focuses on server-to-server communication, namely file and print services, user and group administration, and network transportation (and these protocols were the focus of the European Union case against Microsoft). Per the above MSDN forum post, it makes clear that the WSPP only has protocols for those three feature areas of Windows Server only, e.g. even though Microsoft considers Internet Information Server (IIS) as part of Windows Server, the protocols for IIS are not covered in the WSPP

As one would expect, many of the protocols overlap between the two programs, e.g. the SMB protocol is found in both the MCPP (i.e. Windows client) and WSPP (i.e. Windows Server) documents.

Now that the protocols were posted and Microsoft had articulated its position vis a vis protocols and patents, one immediate issue came to my mind was: how does a developer easily know which specific protocols really do leverage patents that Microsoft holds? If you look at the "cover page" of each protocol on MDSN, each one does have a generic "this may contain IP" warning, but they don't tell you which specific protocols leverage specific patents that Microsoft holds. And if even one of your business development managers is talking to Microsoft about licensing patent X (which Microsoft obviously does encourage commercial developers to do), you may have hundreds of developers spread across the world. Which means how do you know whether or not someone else in your organization is right now surfing MSDN, downloading protocol documentation that is covered by patent Y, and using that information to help build a product – all unbeknownst to that business development manager?

[One potential solution is to have MSDN set up so that developers who want to view documentation that is associated with a patent to click to acknowledge that fact (including listing what patents Microsoft thinks may apply) before the developer downloads it vs. provide a generic warning that this protocol may or may not be covered by a patent.]

Mapping Protocols to Patents and Analyzing the Results

It does take a bit of digging (and a mention on page 6 of a FAQ), but it turns out that Microsoft does provide on its website two separate "maps" of patents to its protocols, one for MCPP and one for WSPP. But unfortunately their versions of the "maps" have issues that I bumped into while researching this.

First, per my commentary above, these "map" documents are physically separate from the protocol information on MSDN that developers are looking at and are probably not something in the form you want to send off to 100 developers and have them interpret. Second, the protocols listed in the Microsoft version of the maps lack descriptions of the protocols and in a great number of instances the names of the protocols in the Microsoft maps don't clearly match the names of the protocols listed on MSDN (and/or take a bit of interpretation). Finally, I found 5 WSPP protocols posted on MSDN that don't appear on any map, meaning there is no listing of what patents may apply; 2 protocols that are on their WSPP map but are not posted on MSDN; and 3 server protocols where you need to go to the client map to see what patents apply. I notified Microsoft of these three issues here, here and here. [BTW, I assume this was a herculean effort on Microsoft's part to get this information on the web site to begin with, and from a recent article it appears that a better mapping of protocols may appear in June, so I understand this is still a work in process and are still items on the "punchlist" to get through.]

So my little side project was to correlate the Windows server protocols posted on MSDN with the patent maps (WSPP and MCPP, but mainly the WSPP) that Microsoft provides to create a "Version 2" map for myself. Once I created a better map, it was then easy to analyze the map and dig into how many patents Microsoft has for Windows, in what functional areas of Windows they reside, etc.

So here's what I found as of April 18, 2008 as it relates to patents found in Microsoft's server protocols posted on MSDN: [Note that of the 130 Windows Server protocols posted on MSDN there was no public information provided by Microsoft if 5 of them had patents or patent applications. So I will base my stats on the 125 server protocols where Microsoft has publicly documented which specific patents apply to which protocols.]

  • Of the 125 protocols posted on MSDN for Windows Server, 99 of the 125 protocols have no US patents associated with them, meaning 80% of the Windows server protocols do not have US patents associated with them. Factoring in protocols that also don't have any US patent applications, 76 of the 125 protocols don't have any US patents or US patent applications associated with them (60%), meaning 49 of the 125 (40%) do have US patents or US patent applications.
  • The 125 Windows server protocols posted on MSDN have in total approximately 46 US patents and 60 US patent applications. Don't forget that the protocols posted for Windows Server apply to file and print, user and group administration and networking transport features only, not Windows Server features such as IIS. The WSPP protocols also have approximately 25 European Union patents and patent applications.
  • In looking at the MCPP protocols (i.e. the client protocols) on MSDN and counting the number of patents listed on their MCPP map, I was able to count approximately 97 patents associated with the 216 MCPP protocols. But, as mentioned above many of the protocols overlap with the WSPP protocols. I was able to count approximately 47 of the 97 patents being duplicative of what is in WSPP, so in my estimation as of 4/18/2008 the Microsoft Windows OS from a client perspective (all features) has approximately 50 unique US patents.
  • Given the above, it is my estimation based on public information posted by Microsoft that Windows client (all features) and Windows server (from a file and print, user and group administration and networking transport feature perspective) has in total approximately 96 US patents. The MCPP map does not list out European patents, so additional non-US patents may apply to Windows, and I did not count up the MCPP US patent applications. [Could there be more patents out there associated with Windows Server and the Windows OS as a whole? Sure, for example Microsoft considers IIS as part of Windows Server, and IIS is not covered in the WSPP. But as it relates to core operating system functions, the source documentation that Microsoft provided to government bodies in terms of what patents they say they have in protocols in Windows client (for all features) and for Windows Server (in those three specific core feature areas) the numbers add up to 96.]
  • Microsoft's Directory Replication protocol has 10 patents itself (approximately 20% of all the server protocols), making Directory Replication by far the largest holder of patents amongst the server protocols, namely over 20% of the server protocols. DCOM was next at 4.

If you want to download my spreadsheet, please know that these terms of use apply (namely read the bit halfway down about no warranties, Centrify is not liable, your mileage may vary, etc.). Then if you are OK with the terms of use, please click here to download my custom "Microsoft Windows server protocol to patent mapping" spreadsheet.

Have fun analyzing the data. At the tail end of the spreadsheet I have various caveats and notes on how I did this, plus the terms of usage. Again this was a side project, no one asked me to do it, etc. so hopefully proper expectations are being set here. I get the impression that Microsoft will be publishing better maps in the coming months, so hopefully what Microsoft will eventually publish will supersede the need for my map.

Final caveats: I did not actually dig into the protocol documentation itself as I am not a developer and the protocol documents would undoubtedly be gibberish to me, so please don't ask me any questions on what's actually in these docs. Microsoft has a forum for that. And I was thinking of doing the same analysis to the MCPP protocols, but decided to return to my day job, so hopefully someone else is interested in doing that.

Enjoy the map, hope it leads you to somewhere interesting!

Categories: Customers and Press, All

< Previous Article: Additional Resources on Migrating from NIS/NIS+ to LDAP
> Next Article: NIS-Migration.com Is Now Live; New Resource Site for Replacing NIS