Published: September 12, 2006 | Revised: February 15, 2007
Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation to the extent it conforms to a Covered Specification ("Covered Implementation"), subject to the following. This is a personal promise directly from Microsoft to you, and you acknowledge as a condition of benefiting from it that no Microsoft rights are received from suppliers, distributors, or otherwise in connection with this promise.
If you file, maintain or voluntarily participate in a patent infringement lawsuit against a Microsoft implementation of such Covered Specification, then this personal promise does not apply with respect to any Covered Implementation of the same Covered Specification made or used by you.
To clarify, "Microsoft Necessary Claims" are those claims of Microsoft-owned or Microsoft-controlled patents that are necessary to implement only the required portions of the Covered Specification that are described in detail and not merely referenced in such Specification. "Covered Specifications" are listed below.
This promise is not an assurance either (i) that any of Microsoft issued patent claims covers a Covered Implementation or are enforceable or (ii) that a Covered Implementation would not infringe patents or other intellectual property rights of any third party. No other rights except those expressly stated in this promise shall be deemed granted, waived or received by implication, exhaustion, estoppel, or otherwise.
Covered Specifications (the promise applies individually to each of these specifications)
This promise applies to the identified version of the following specifications. New versions of previously covered specifications will be separately considered for addition to the list. In connection with the specifications listed below, this Promise also applies to the required elements of optional portions of such specifications.
|Ink Serialized Format (ISF) Specification|
|Windows Metafile Format (.wmf) Specification|
With respect to the Implementer's Notes listed below, the definition of "Microsoft Necessary Claims shall be - those claims of Microsoft-owned or Microsoft-controlled patents that are necessary to implement the information contained within the Implementer's Notes when read in conjunction with the Covered Specification to which the Implementer's Notes applies to the extent the information is described in detail and not merely referenced in such Implementer's Notes."
|Implementer's Notes Title||Applicable Covered Specification|
|Office Implementation Information for ECMA-376 Standards Support [MS-OE376]||Office Open XML 1.0 - Ecma-376|
|Office Implementation Information for ISO/IEC 29500 Standards Support [MS-OI29500]||Office Open XML ISO/IEC 29500:2008|
Office Open XML ISO/IEC 29500:2012
|Office Implementation Information for ODF 1.1 Standards Support [MS-OODF]||OpenDocument Format for Office Applications v.1.1 OASIS|
|Office Implementation Information for ODF 1.1 Version 2 Standards Support [MS-OODF2]||OpenDocument Format for Office Applications v.1.1 OASIS|
|Office Implementation Information for ODF 1.2 Standards Support [MS-OODF3]||OpenDocument Format for Office Applications v.1.2 OASIS|
|Microsoft Computer Languages|
|[MS-SLXV]: Silverlight XAML Vocabulary Specification 2008 (Draft v0.9)|
|[MS-SLXV-2010]: Silverlight XAML Vocabulary Specification 2010|
|[MS-WPFXV]: WPF XAML Vocabulary Specification 2006 (Draft v0.1)|
|[MS-WPFXV]: WPF XAML Vocabulary Specification 2006 (v1.0)|
|[MS-WPFXV-2010]: WPF XAML Vocabulary Specification 2010|
|[MS-WPFXV-2012]: WPF XAML Vocabulary Specification 2012|
|[MS-XAML]: XAML Object Mapping Specification 2006 (Draft v0.1)|
|[MS-XAML]: XAML Object Mapping Specification 2006 (v1.0)|
|[MS-XAML-2009]: XAML Object Mapping Specification 2009|
|[MS-XAML-2012]: XAML Object Mapping Specification 2012|
As long as Microsoft participates in their revision process to completion, Microsoft irrevocably commits to apply the Open Specification Promise to future versions of the below listed specifications.
|Open XML and Open Document File Formats|
|MS-WPE376: WordPad ECMA 376 Standards Support|
|MS-WPODF: WordPad ODF 1.1 Standards Support|
|Office 2003 XML Reference Schemas|
|Office Open XML 1.0 - Ecma-376|
|Office Open XML ISO/IEC 29500:2008|
|Office Open XML ISO/IEC 29500:2012|
|OpenDocument Format for Office Applications v1.0 OASIS|
|OpenDocument Format for Office Applications v1.0 ISO/IEC 26300:2006|
|OpenDocument Format for Office Applications v1.1 OASIS|
|OpenDocument Format for Office Applications v1.1 ISO/IEC 26300:2006/COR1:2010, COR2:2011 and Amd 1:2012|
|OpenDocument Format for Office Applications v1.2 OASIS|
On June 30, 2008, Microsoft published additional specifications for the Microsoft Word, Microsoft Excel, and Microsoft PowerPoint binary file formats. Microsoft recommends that developers use the more recent documentation located at http://msdn.microsoft.com/library/cc313118.aspx. See reference to these more recently published file formats below.
|Other Office File Formats|
|Excel 97-2007 Binary File Format (.xls) Specification|
|Excel 2007 Binary File Format (.xlsb) Specification|
|Office Drawing 97-2007 Binary Format Specification|
|PowerPoint 97-2007 Binary File Format (.ppt) Specification|
|Word 97-2007 Binary File Format (.doc) Specification|
|Office Binary File Formats (for Word, Excel and PowerPoint) - First Published June 30, 2008|
|[MS-CTDOC]: Word Custom Toolbar Binary File Format Structure Specification|
|[MS-CTXLS] Excel Custom Toolbar Binary File Format Structure Specification|
|[MS-DOC]: Word Binary File Format (.doc) Structure Specification|
|[MS-ODRAW]: Office Drawing Binary File Format Structure Specification|
|[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification|
|[MS-OFORMS]: Office Forms Binary File Format Structure Specification|
|[MS-OGRAPH]: Office Graph Binary File Format Structure Specification|
|[MS-OSHARED]: Office Common Data Types and Objects Structure Specification|
|[MS-OVBA]: Office VBA File Format Structure Specification|
|[MS-PPT]: PowerPoint Binary File Format (.ppt) Structure Specification|
|[MS-XLS]: Excel Binary File Format (.xls) Structure Specification|
|[MS-XLSB]: Excel Binary File Format (.xlsb) Structure Specification|
|Office File Formats|
|[MS-CUSTOMUI]: Custom UI XML Markup Specification|
|[MS-CUSTOMUI2]: Custom UI XML Markup Version 2 Specification|
|[MS-DOCX]: Word Extensions to the Office Open XML File Format (.docx) Specification|
|[MS-DSEXPORT]: Document Set Package Format|
|[MS-ODCFF]: Office Data Connection File Format|
|[MS-ODRAWXML]: Office Drawing Extensions to Office Open XML Structure Specification|
|[MS-OFFMACRO]: Office Macro-Enabled File Format|
|[MS-OFFMACRO2]: Office Macro-Enabled File Format Version 2|
|[MS-ONE]: OneNote File Format|
|[MS-ONESTORE]: OneNote Revision Store File Format|
|[MS-OWEMXML]: Office Web Extensibility Manifest Format|
|[MS-OWEXML]: Office Web Extensibility Extensions to Office Open XML Structure Specification|
|[MS-PPTX]: PowerPoint Extensions to the Office Open XML File Format (.pptx) Specification|
|[MS-PST]: Outlook Personal Folders File Format (.pst) Structure Specification|
|[MS-WORDLFF]: Word (.xml) Co-Authoring File Format in Document Lock Persistence Structure|
|[MS-XLDM]: Spreadsheet Data Model File Format|
|[MS-XLSB]: Excel (.xlsb) Binary File Format|
|[MS-XLSX]: Excel Extensions to the Office Open XML SpreadsheetML File Format (.xlsx) Specification|
|[RTF]: Rich Text Format|
|1394 Serial Bus Protocol 2 (SBP2)|
|Collaboration Data Object for Windows 2000 Protocol Library|
|Draft-cai-ssdp-v1-00 - Simple Service Discovery Protocol|
|Draft-cohen-gena-client-00 - General Event Notification Architecture (GENA)|
|Draft-cooper-webi-wpad-00- Web Proxy Auto-Discovery Protocol|
|Draft-ietf-dhc-csr-06 - Classless Static Route Option for DHCP|
|Draft-ietf-pppext-callback-cp-02- Callback Control Protocol (CBCP)|
|Draft-leach-cifs-v1-spec-02 - Common Internet File System (CIFS)|
|HyperTerminal Protocols Extensions|
|IBM Data Link Control (DLC) Protocol|
|IBM NetBIOS Extended User Interface (NetBEUI) v 3.0|
|IEEE 1284 - Interface - Parallel|
|IEEE 802.1x - 2004|
|Infrared Data Association (IrDA) Published Standards|
|Infrared Network (IrNET) Protocol|
|Intel Preboot Execution Environment (PXE)|
|[MC-BUP]: Background Intelligent Transfer Service (BITS) Upload Protocol Specification|
|[MC-CCFG]: Server Cluster: Configuration (ClusCfg) Protocol Specification|
|[MC-COMQC]: Component Object Model Plus (COM+) Queued Components Protocol Specification|
|[MC-DPL4CS]: DirectPlay 4 Protocol: Core and Service Providers Specification|
|[MC-DPL4R]: DirectPlay 4 Protocol: Reliable Specification|
|[MC-DPL8CS]: DirectPlay 8 Protocol: Core and Service Providers Specification|
|[MC-DPL8R]: DirectPlay 8 Protocol: Reliable Specification|
|[MC-DPLHP]: DirectPlay 8 Protocol: Host and Port Enumeration Specification|
|[MC-DPLNAT]: DirectPlay 8 Protocol: NAT Locator Specification|
|[MC-DPLVP]: DirectPlay Voice Protocol Specification|
|[MC-DTCXA]: MSDTC Connection Manager: OleTx XA Protocol Specification|
|[MC-FPSEWM]: FrontPage Server Extensions: Website Management Specification|
|[MC-IISA]: Internet Information Services (IIS) Application Host COM Protocol Specification|
|[MC-IISIAQ]: Internet Information Services (IIS) IAQ AdminRPC Protocol Specification|
|[MC-MQAC]: Message Queuing (MSMQ): ActiveX Client Protocol Specification|
|[MC-MQSRM]: Message Queuing (MSMQ): SOAP Reliable Messaging Protocol (SRMP)|
|[MC-NBFSE]: .NET Binary Format: SOAP Extension|
|[MC-NBFS]: .NET Binary Format: SOAP Data Structure|
|[MC-NBFX]: .NET Binary Format: XML Data Structure|
|[MC-NMF]: .NET Message Framing Protocol Specification|
|[MC-NPR]: .NET Packet Routing Protocol Specification|
|[MC-PRCH]: Peer Channel Protocol Specification|
|[MC-PRCR]: Peer Channel Custom Resolver Protocol Specification|
|[MC-SMP]: Session Multiplex Protocol Specification|
|[MS-STANOPOP3]: Outlook POP3 Standards Compliance|
|[MS-STANXPOP3]: Exchange Post Office Protocol Version 3 (POP3) Standards Support|
|[MC-SQLR]: SQL Server Resolution Protocol Specification|
|Microsoft Internet Information Services (IIS) Application Host COM Protocol|
|Microsoft Internet Protocol Security Protocol Extension - Internet Key Exchange (IKE) Protocol with Acknowledged Deletes|
|Microsoft Internet Protocol Security Protocol Extension - Internet Key Exchange (IKE) Protocol with Private Error Status Notification|
|Microsoft Internet Protocol Security Protocol Extension - Kerberos (GSS-Authentication) in Internet Key Exchange (IKE) protocol with GSS-API Authentication|
|Microsoft Kerberos Authentication Group Membership Extensions|
|Microsoft Network Access Protection (NAP) Statement of Health (SoH) Messages|
|Microsoft Remote X/Open Directory Services Remote Protocol|
|Microsoft Simple Network Time Protocol Extensions|
|Microsoft Teredo Protocols|
|Microsoft Universal Plug and Play Internet Gateway Device Extensions|
|Microsoft VT-UTF8 Protocol|
|Microsoft VT100+ Protocol|
|[MS-3DMDTP]: Data Visualization: 3-D Map Data Tour File Format|
|[MS-TDS]: Tabular Data Stream Protocol|
|Novell Internetwork Packet Exchange (IPX)|
|Novell NetBIOS over Internetwork Packet Exchange (NBIPX)|
|Novell Sequenced Packet Exchange (SPX)|
|Novell Service Advertising Protocol (SAP)|
Open Data Protocol
|RFC 783 - Trivial File Transfer Protocol (TFTP)|
|RFC 791, RFC 768, RFC 792, RFC 793, and RFC 826 - Transmission Control Protocol/Internet Protocol v4 (TCP/IP v4)|
|RFC 792 - Internet Control Message Protocol (ICMP)|
|RFC 854 - Telnet Protocol|
|RFC 862 - Echo Protocol|
|RFC 863 - Discard Protocol|
|RFC 864 - Character Generator Protocol|
|RFC 865 - Quote of the Day Protocol|
|RFC 867 - Daytime Protocol|
|RFC 884 - VTNT Terminal|
|RFC 959 - File Transfer Protocol (FTP)|
|RFC 1001 and RFC 1002 - NetBIOS over TCP (NETBT)|
|RFC 1034, RFC 1035, RFC 1995, RFC 2136, RFC 2181, RFC 2782, RFC 2845, RFC 2930, RFC 007, and RFC 3645 - Domain Name System (DNS)|
|RFC 1055 - Serial Line Internet Protocol (SLIP)|
|RFC 1058, RFC 1723, and RFC 2453 - Routing Information Protocol 1.0, 2.0 (RIP)|
|RFC 1112, RFC 2236, and RFC 3376 - Internet Group Management Protocol (IGMP) v1, v2, and v3|
|RFC 1155, RFC 1157, RFC 1213, RFC 1289, RFC 1901, RFC 1902, RFC 1903, RFC 1904, RFC 1905, RFC 1906, RFC 1907, and RFC 1908: Simple Network Management Protocol v2 (SNMP)|
|RFC 1179 - Line Printer Daemon (LPD)|
|RFC 1191, RFC 1323, RFC 2018, and RFC 2581 - TCP/IP Extensions|
|RFC 1256 - ICMP Router Discovery Messages|
|RFC 1258 and RFC 1282 - Remote LOGIN (rlogin)|
|RFC 1332 and RFC 1877 -Internet Protocol Control Protocol (IPCP)|
|RFC 1334 - Password Authentication Protocol (PAP)|
|RFC 1393 - Trace Route|
|RFC 1436 -Internet Gopher|
|RFC 1483, RFC 1755, and RFC 2225 -Internet Protocol over Asynchronous Transfer Mode (IP over ATM)|
|RFC 1510 and RFC 1964 - Kerberos Network Authentication Service (v5)|
|RFC 1552 - PPP Internetwork Packet Exchange Control Protocol (IPXCP)|
|RFC 1661 - Point-to-Point (PPP) Protocol|
|RFC 1739 Section 2.2 - Packet Internet Groper (ping)|
|RFC 1889 and RFC 3550 - Real-Time Transport Protocol (RTP)|
|RFC 1939 and RFC 1734 - Post Office Protocol, v3(POP3)|
|RFC 1962 - Compression Control Protocol (CCP)|
|RFC 1990 - Multilink Protocol (MP)|
|RFC 1994 - MD5 Challenge Handshake Authentication Protocol (MD5-CHAP)|
|RFC 2097 - NetBIOS Frames Control Protocol (NBFCP)|
|RFC 2118 - Microsoft Point-to-Point Compression (MPPC)|
|RFC 2125 - Bandwidth Allocation Protocol (BAP)|
|RFC 2131, RFC 2132, and RFC 3361- Dynamic Host Configuration Protocol (DHCP)|
|RFC 2205, RFC 2209, and RFC 2210- Resource Reservation Setup (RSVP)|
|RFC 2222 - Simple Authentication and Security Layer (SASL)|
|RFC 2225 - synchronous Transfer Mode|
|RFC 2246 and RFC 2716 - PPP EAP Transport Level Security Authentication Protocol|
|RFC 2246 - Transport Layer Security (TLS)|
|RFC 2251 and RFC 2256 - Lightweight Directory Access Protocol (LDAP v3)|
|RFC 2284 - PPP Extensible Authentication Protocol (EAP)|
|RFC 2364 - Point-to-Point over ATM Adaptation Layer 5 (PPPOA)|
|RFC 2401, RFC 2402, RFC 2403, RFC 2404, RFC 2405, RFC 2406, RFC 2407, RFC 2408, RFC 2409, RFC 2410, RFC 2411, and RFC 2412 - Internet Protocol Security (IPsec) Protocols|
|RFC 2433 - Microsoft Challenge Handshake Authentication Protocol (MS-CHAP)|
|RFC 2460 and RFC 2480 - Transmission Control Protocol/Internet Protocol v6 (TCP/IP v6)|
|RFC 2474 - Differentiated Services (DIFFSERV)|
|RFC 2478 and RFC 4178 - Simple and Protected GSS-API Negotiation (SPNEGO)|
|RFC 2478 and RFC 4559 - HTTP Authentication: Simple and Protected GSS_API Negotiation Mechanism (SPNEGO)|
|RFC 2516 - Point-to-Point over Ethernet (PPPOE)|
|RFC 2518 -- HTTP Extensions for Distributed Authoring -- WEBDAV|
|RFC 2529 - IPv6 over IPv4 (6to4)|
|RFC 2616 - Hypertext Transfer Protocol (HTTP) v.1.1|
|RFC 2617 - HTTP Authentication: Basic and Digest|
|RFC 2637 - Point-to-Point Tunneling Protocol (PPTP)|
|RFC 2661 and RFC 3193 - Layer Two Tunneling Protocol (L2TP)|
|RFC 2730 - Multicast Address Dynamic Client Allocation Protocol (MADCAP)|
|RFC 2734, RFC 3056, and RFC 3068 - IPv4 over High Performance Serial Bus (IEEE 1394)|
|RFC 2814 - Subnet Bandwidth Manager (SBM)|
|RFC 2910 and RFC 2911 - Internet Printing Protocol (IPP)|
|RFC 3078 - Microsoft Point-To-Point Encryption (MPPE)|
|RFC 3208 - Pragmatic General Multicast (PGM)|
|RFC 3244 - Kerberos Change Password|
|RFC 4214 -Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)|
|RFC 4556 - Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)|
|RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)|
|Secure Sockets Layer v3 (SSL)|
|Small Computer Systems Interface (SCSI) Multimedia Command Set - 2 (MMC-2)|
|Small Computer Systems Interface (SCSI) Multimedia Command Set - 3 (MMC-3)|
|Small Computer Systems Interface (SCSI) Primary Command Set (SCSI-3)|
|Sun Microsystems Remote Procedure Call (SunRPC)|
|Tabular Data Stream (TDS) v7.1, 7.2, 7.3|
|Universal Plug and Play (UPnP)|
|Universal Serial Bus (USB) Revision 2.0|
|Decentralized Software Services Protocol - DSSP/1.0|
|SQL Database Federations v1.0|
|RFC 4405 - SMTP Service Extension for Indicating the Responsible Submitter of an E-Mail Message|
|RFC 4406 - Sender ID: Authenticating E-Mail|
|RFC 4407 - Purported Responsible Address in E-Mail Messages|
|RFC 4408 - Sender Policy Framework: Authorizing Use of Domains in "Mail From"|
|RFC 7208 - Sender Policy Framework (SPF) for Authorizing Use of Domains in Email|
|U-Prove Cryptographic Specification V1.0|
|U-Prove Cryptographic Specification V1.1|
|U-Prove Technology Integration into the Identity Metasystem V1.0|
|U-Prove WS-Trust Profile V1.0|
|Microsoft Application Virtualization File Format Specification v1|
|VHDX Format Specification v0.95|
|VHDX Format Specification v1.0|
|Virtual Hard Disk (VHD) Image Format Specification|
|OpenService Format Specification|
|WebSlice Format Specification|
|XML Search Suggestions Format Specification|
|Devices Profile for Web Services (DPWS)|
|Identity Selector Interoperability Profile v1.0|
|Identity Selector Interoperability Profile v1.5|
|Remote Shell Web Services Protocol|
|SOAP 1.1 Binding for MTOM 1.0|
|SOAP MTOM / XOP|
|Web Single Sign-On Interoperability Profile|
|Web Single Sign-On Metadata Exchange Protocol|
|WS-Addressing End Point References and Identity|
|WSDL 1.1 Binding Extension for SOAP 1.2|
|WS-Federation Active Requestor Profile|
|WS-Federation Passive Requestor Profile|
|WS-I Basic Profile|
|WS-Security: Kerberos Binding|
|WS-Security: Kerberos Token Profile|
|WS-Security: Rights Expression Language (REL) Token Profile|
|WS-Security: SAML Token profile|
|WS-Security: SOAP Message Security|
|WS-Security: UsernameToken Profile|
|WS-Security: X.509 Certificate Token Profile|
|Windows Compound Formats|
|[MS-CFB]: Compound File Binary File Format|
|Windows Compound Binary File Format Specification|
|Windows Rally Technologies|
|Windows Connect Now - UFD and Windows Vista|
|Windows Connect Now - UFD for Windows XP|
Frequently Asked Questions
The Open Specification Promise (OSP) is a simple and clear way to assure that the broadest audience of developers and customers working with commercial or open source software can implement specifications through a simplified method of sharing of technical assets, while recognizing the legitimacy of intellectual property.
We listened to feedback from community representatives who made positive comments regarding the acceptability of this approach.
Why did Microsoft take this approach?
It was a simple, clear way, after looking at many different licensing approaches, to reassure a broad audience of developers and customers that the specification(s) could be used for free, easily, now and forever.
How does the OSP work? Do I have to do anything in order to get the benefit of this OSP?
No one needs to sign anything or even reference anything. Anyone is free to implement the specification(s), as they wish and do not need to make any mention of or reference to Microsoft. Anyone can use or implement these specification(s) with their technology, code, solution, etc. You must agree to the terms in order to benefit from the promise; however, you do not need to sign a license agreement, or otherwise communicate your agreement to Microsoft.
What is covered and what is not covered by the OSP?
The OSP covers each individual specification designated on the public list posted at http://www.microsoft.com/openspecifications/en/us/programs/osp/default.aspx. The OSP applies to anyone who is building software and or hardware to implement one or more of those specification(s). You can choose to implement all or part of the specification(s). The OSP does not apply to any work that you do beyond the scope of the covered specification(s).
If a listed specification has been approved by a standards organization, what patent rights is Microsoft providing?
We are providing access to necessary claims consistent with the scope of our commitments in that organization.
What if I don't implement the entire specification? Will I still get the protections under the OSP?
The OSP applies whether you have a full or partial implementation. You get the same irrevocable promise from us either way. In all cases, the OSP covers only your implementation of the parts of the specification(s) that you decide to use.
The specification I am interested in has some required portions and some optional portions, does the OSP apply to both?
Yes, the OSP covers Necessary Claims for both required and optional portions of the Covered Specifications. Under the paragraph entitled "Covered Specifications" is the language that makes it clear that the OSP applied to portions of the Covered Specifications that are optional ("This Promise also applies to the required elements of optional portions of such specifications").
Does this OSP apply to all versions of the standard, including future revisions?
The OSP applies to all existing versions of the specification(s) designated on the public list posted on the OSP page, unless otherwise noted with respect to a particular specification (see, for example, specific notes related to web services specifications).
Why doesn't the OSP apply to things that are merely referenced in the specification?
It is a common practice that technology licenses focus on the specifics of what is detailed in the specification(s) and exclude what are frequently called "enabling technologies." If we included patent claims to the enabling technology, then as an extreme example, it could be argued that one needs computer and operating system patents to implement almost any information technology specification. No such broad patent licenses to referenced technologies are ever given for specific industry standards.
Is this OSP sub-licensable?
There is no need for sublicensing. This promise is directly applicable to you and everyone else who wants to use it. Accordingly, your distributees, customers and vendors can directly take advantage of this same promise, and have the exact same protection that you have.
Is this OSP legally binding on Microsoft and will it be available in the future to me and to others?
Yes, the OSP is legally binding upon Microsoft. The OSP is a unilateral promise from Microsoft and unilateral promises may be enforced against the party making such a promise. Because the OSP states that the promise is irrevocable, it may not be withdrawn by Microsoft. The OSP is, and will be, available to everyone now and in the future for the specifications to which it applies. As stated in the OSP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding a Microsoft implementation of the same Covered Specification. This type of "suspension" clause is common industry practice.
Is the OSP intended to apply to open source developers and users of open source developed software?
Yes. The OSP applies directly to all persons or entities that make, use, sell, offer for sale, imports and/or distributes an implementation of a Covered Specification. It is intended to enable open source implementations, and in fact several parties in the open source community have specifically stated that the OSP meets their needs. Moreover there are already a significant number of implementations of Covered Specifications that have been created and/or distributed under a variety of open source licenses as well as under proprietary software development models. Because open source software licenses can vary you may want to consult with your legal counsel to understand your particular legal environment.
Why does Microsoft obtain patents that apply to specifications to which the OSP apply? Is that something that others do too?
Microsoft invests a significant amount of resources in research and development efforts. Like any other company that commits such resources to creating new technologies, Microsoft seeks to protect its investment by obtaining patents on the resulting innovations. At a minimum, patents have value in defending Microsoft with regard to patent infringement claims made by others. Many patent owners use their patents defensively to protect themselves against third-party law suits when they make their patents available under reasonable and non-discriminatory (RAND or RAND-Z) terms and conditions (including promises like the OSP).
What is the difference between copyrights and patent rights and why doesn't the OSP include copyrights?
Patents protect the creation or improvement of a novel and useful method, device, process, or material. By contrast, copyrights protect a particular expression or implementation of an invention but not the underlying invention itself. For example, copyright protects the intellectual property rights associated with owning or distributing a copy of the specification as a document. In the particular case of the OSP, copyrights in the Covered Specifications are made available by the publisher of the particular specification. When specifications are published by standards setting organizations, those organizations provide the copyright license. When Microsoft is the publisher of the Covered Specification, a copyright license is provided either as a part of text of the Covered Specification itself, or in a separate document. Copyrights in the Covered Specifications are not provided through the OSP because, in the instances where the standards organization owns the copyright in the Covered Specifications, Microsoft does not have the ability to provide such rights.
Is this Promise consistent with open source licensing, namely the GPL? And can anyone implement the specification(s) without any concerns about Microsoft patents?
The OSP is a simple and clear way to assure that the broadest audience of developers and customers working with commercial or open source software can implement the covered specification(s). We leave it to those implementing these technologies to understand the legal environments in which they operate. This includes people operating in a General Public License (GPL) environment. Because the GPL is not universally interpreted the same way by everyone, we can't give anyone a legal opinion about how our language relates to the GPL or other OSS licenses, but based on feedback from the open source community we believe that a broad audience of developers can implement the specification(s).
I am a developer/distributor/user of software that is licensed under the GPL, does the OSP apply to me?
Absolutely, yes. The OSP applies to developers, distributors, and users of Covered Implementations without regard to the development model that created such implementations, or the type of copyright licenses under which they are distributed, or the business model of distributors/implementers. The OSP provides the assurance that Microsoft will not assert its Necessary Claims against anyone who make, use, sell, offer for sale, import, or distribute any Covered Implementation under any type of development or distribution model, including the GPL. As stated in the OSP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding a Microsoft implementation of the same Covered Specification. This type of "suspension" clause is common industry practice.
Why are you putting Sender ID under the Open Specification Promise (OSP)?
We think we can promote further industry interoperability among all commercial software solutions that utilize email authentication, including open source solutions by making Sender ID more clearly available to the entire internet ecosystem including customers, partners, ISPs, registrars, and the developer community. This approach complements the Microsoft broader commitment to combat the spread of spam, phishing, malware and other exploits in email, as well as interoperability, which we achieve in part through enabling access to our technology.
Are you making Sender ID available under the OSP because you received so much criticism for your original licensing approach to the spec?
We recognize that there are lingering questions from some members of the development community about Microsoft licensing terms and how those terms may affect developers' ability to implement Sender ID. It is important to note that great progress has already been made on email authentication worldwide with more than 5 million domain holders adopting Sender ID as a best practice. Sender ID helps protect brands, reduce spam, and counter email exploits. The OSP is a simple, clear way to reassure a broad audience of developers and customers that any Microsoft patents ever needed to implement all or part of the specification could be used for free, easily, now and forever.
What's the significance of the OSP for Sender ID?
By extending the OSP to the Sender ID format, Microsoft will help the industry combat email spoofing and phishing by fostering greater interoperability among all commercial software solutions for email authentication, including open source-based solutions. Implementers of the Sender ID Framework will not need to be concerned about signing a license in order to implement the anti-spoofing and anti-phishing technology. This approach also complements the Microsoft broader commitment to interoperability, which we achieve in part through enabling access to our technology.
Where can I download the Sender ID specifications?
What are you doing by adding Ecma Office Open XML to the Open Specification Promise (OSP)?
We are giving potential implementers of Ecma Open XML the ability to take advantage of either the covenant not to sue or the OSP, at their choice. Microsoft had already stated that it offers an irrevocable covenant not to sue to anyone wishing to implement the formats. We understand that some may prefer the new OSP, which we'd like to facilitate.
Why are you applying both the covenant not to sue and the OSP?
Some have asked whether we would apply the OSP to Ecma Office Open XML. We don't know whether some will choose the OSP over the CNS, but we want to make that an option.