Swiss Internet User Group (SIUG)
      an initiative of CH Open
siug@siug.ch

Open Interfaces

This is version 0.7.en1 (2010-01-16)
The current version is always available under this URL: https://strictly-open.xyz/interfaces
Author: Norbert Bollow (contact information)

The goal of this definition to create a pragmatic yet precisely-defined notion of Open Interfaces in the context of computer software.

Here the term interfaces refers to data formats1, communication protocols and other interoperability interfaces of computer programs with other computer programs or with hardware components.

Note 1: Openness is not only important for interfaces to obviously different software and hardware components, but for example also for data formats which are initially used only for storing data for the purpose of further processing with the same program. If a non-open data format is used for that, migrating to another data processing program could be impossible or be subject to disproportionate difficulties and costs.

It would be ideal if all interfaces could be defined by Strictly Open Standards2. In practice, this is usually not completely possible for all interfaces. There are several reasons for that: First it is unavoidable that the needs of the users of IT systems are constantly evolving. The development of good, strict standards takes significantly longer than to implement innovative ideas and to document the interfaces. In addition, the effort of formal standardization will generally be justified only for specifications which address fundamental user needs. For more special user needs, interfaces can be defined which are not themselves Open Standards, but which are based on Open Standards as far as possible.

Note 2: For the notion of Strictly Open Standards see https://strictly-open.xyz/standards.

Criteria for “Open Interfaces”

An interface may be referred to as an Open Interface if it fulfills all of the following three criteria. Following the custom in ISO/IEC standards, the imperative “shall” is used to indicate normative requirements.

(a) Documentation: The interface shall be documented carefully and completely.

(b) Use of Open Standards: The interface shall be based as far as possible3 on Strictly Open Standards.

Note 3: Here the qualification „as far as possible” summarizes several different aspects: On one hand, Strictly Open Standards shall be used for all the needs of the concrete situation which can be addressed in that way. If there is no suitable Strictly Open Standard, at least as many as possible of the criteria for Strictly Open Standards should be fulfilled. Finally, standards shall be extended only to the extent that is necessary.

(c) Freedom of implementation: There shall be no restrictions which would prevent implementing the interface in software with any model of software licensing, partially, fully, or with extensions. In particular, there must not be any demand for patent royalties, because that would contradict implementation in Free and Open Source Software (FOSS). Restrictions which discriminate against other models of software licensing are likewise unacceptable.

Permission to copy and to quote this definition

Drafts and released versions of this definition are available under the Creative Commons Attribution-No Derivative Works 2.5 Switzerland License.