Active Directory-based authentication, access control and role-based privilege management for Windows, Linux & UNIX
Standard Edition + privileged user auditing
Enterprise Edition + encryption of data-in-motion and server isolation
Any Edition + single sign-on for SAP, Apache and J2EE/Java applications
Single sign-on for cloud apps + mobile device supportMac Edition
Active Directory-based authentication and Group Policy management for Macs + mobile device supportPremium Edition
SaaS and Mac Editions + mobile device supportCentrify for Samsung KNOX
Active Directory-based SSO, MCM and MDM for KNOX-enabled devices
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:
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":
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.]
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!