Extensions to open standards are a critical issue. Extensions can create a barrier to interoperability or even jeopardise interoperability. On the other hand extensions are needed in order to accommodate specific requirements, be that domain specific, specific to a client's infrastructure, etc.
A colleague of mine,
Arnaud Lehors, and I recently started some thinking around this issue. We propose the concept of open extensions - extensions that are done in a similar way like open standards themselves so that openness, transparency and vendor-independence are kept and interoperability is not broken.
Arnaud and I jointly developed an initial discussion document on Open Extensions. I append it below - it has also been on
Arnaud's blog for some time.
Please note that this is work in progress; all comments from anyone interested are welcome. The plan is to continue working on the topic. Please also note to disclaimer below.
Disclaimer
As everything on this blog, this is my/our personal opinion and it does not necessarily represent IBM’s position.
Open Extensions
Introduction
Extensions to standards are common practice, in some areas more than in others. Extensions can help to meet specific requirements in a given domain which are not covered by the applicable standard. On the other hand, extensions carry the risk of breaking the interoperability and thus violating one of the basic objectives of having a standard.
How to deal with extensions is therefore a major challenge – in particular for organizations which consider standards, and in particular open standards, as the basis for their technology and procurement decisions. Fundamentally, the goal of procurement and open standards policies ought to be to prevent vendor lock-in via proprietary extensions which effectively break interoperability.
Open Standards and the Public Sector
In the globally integrated economy, open technical standards are integral to enabling the delivery of everything from disaster relief services and health care, to business services and consumer entertainment. They allow governments to create economic development platforms and deliver services to their citizens. Open standards enable electronic devices and software programs to interoperate with one another, which is a prerequisite for efficient electronic data processing and transaction handling.
Worldwide more and more governments are implementing open standards policies. They require open standards and interoperability in public tenders and thus leverage the benefits of open standards for the public sector. Open standards ensure that users have flexibility and choice, by keeping exit costs low where technologies need to be replaced by better, more efficient, or more cost effective ones. Open standards are key to guaranteeing fair competition. This includes open source offerings as well as other stakeholders in the market.
The challenge of extensions
Extensions to open standards are a challenge because they are to some extent contrary to the whole point of requiring the use of standards in the first place. However, both the complexity of the various situations technology has to address and the need for evolution makes extensions a necessity that needs to be taken into account. And, after all, extensions don’t necessarily have to break the idea behind using a standard.
Indeed, the key criterion regarding extensions is not whether some technology or product extends a given standard or not, but rather whether in doing so it breaks interoperability.
Some standards provide built-in extension mechanisms with ways to communicate what extensions, if any, are being used and how they must be dealt with. For instance, the standard may prevent interaction altogether if the integrity of the information being exchanged depends on an extension which is not understood by the other component.
In such a case a product is deemed compliant even when it supports extensions - assuming they are supported according to the mechanism defined by the standard.
Procurement policies – support for Open Extensions
In general, products that support extensions to a standard ought to strictly adhere to the standard by default and only make use of extensions through some explicit request mechanism. This is necessary to avoid unintentional reliance on proprietary extensions which is typically discovered later on, when trying to connect components from different vendors or replace a component from one vendor by that of another.
When extensions are supported they should be “Open Extensions”. Open extensions are to extensions what open standards are to standards. To be “open” extensions must meet the same criteria with regard to openness, transparency, availability, implementability, etc.
Open extensions are best developed as part of the evolution of the standard in an open standards development organization. This has proved to be effective and efficient in ensuring that such extensions are indeed open which is a major element to preserving interoperability.
Open extensions provide for the required flexibility while keeping the spirit and technical benefits of open standards and openness. Where procurement policies – especially in the public sector – support extensions they should make clear that it is limited to open extensions. Procurement policies which require open standards and allow, in exceptional cases, for open extensions are optimally set up to leverage the full benefits of open standardization.