Practical Technology

for practical people.

Can you safely avoid Microsoft patents in open-source development?


Thanks to the European Union’s courts, Microsoft was forced to open up its APIs and protocols for its MCPP (Microsoft Communications Protocol Program) and WSPP (Workgroup Server Protocol Program). According to Keith Hageman, an MSDN moderator, “The MCPP package content details Windows Clients to Windows Server protocols for all features. The WSPP package content details Windows Client to Windows Server and Windows Server to Windows Server protocols for ‘File and Print.’ ‘User and Group Administration,’ and ‘Networking Transport’ features only.” In English, these are the keys to getting non-Microsoft programs, such as the open-source file/print server Samba, to work with Microsoft clients and servers.

Sounds great doesn’t it? The poison pill in all this is that while Microsoft has to let you develop programs that use these protocols and APIs, it can, according to Brad Smith, Microsoft’s general counsel, charge you a patent license per copy if you create commercial software with this information. It would be helpful, of course, if you could tell when you might be in danger of violating a Microsoft patent. Aye, there’s the rub.

You see while Microsoft put the boilerplate “this may contain IP” on every document, it didn’t say what IP (intellectual property) might be covered in any given protocol or API. For a flat 10,000 Euro fee, you can steer clear of any copyright problems. This is how Samba handled it. A patent license is likely to run afoul of the open-source GPL3 requirements, not to mention perhaps involving prohibitive fees. Besides, how can you know if you’re required to pay for a patent in the first place?

Now, Tom Kemp, CEO of Centrify, a company that extends the use of one of the most important set of those protocols and APIs, AD (Active Directory) has connected the dots between Microsoft’s newly opened programming information and its patents in his blog posting: Mapping Microsoft Windows Server Protocols to Patents.

Perhaps the most surprising, and delightful, thing for open-source programmers is how much of these areas are not covered by Microsoft patents. Kemp has found to date that “Of the 125 protocols posted on MSDN for Windows Server, 99 of the 125 protocols have no US patents associated with them.” He also found that “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.” Interestingly, “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.”

This was not easy, and I take my hat off to him for his efforts. Anyone interested in developing software that uses MCPP and WSPP must read his analysis and look at his supporting spreadsheets.

For more analysis on how Kemp’s finding has changed how open-source developers can approach Microsoft network services see Jason Perlow’s Centrify’s Tom Kemp: Here’s the map to avoiding Microsoft’s patent minefield. For more information about obtaining the copyright permissions from Microsoft, which is a must for any development using these APIs and protocols, see Andrew Tridgell’s Freeing up the Windows workgroup protocols and The PFIF Agreement. Between Kemp and Tridgell’s work, you’ll be well-started on how to safely use Microsoft’s opened technologies without running into legal hassles.