During 2006 I wrote a lot about interoperability, though some of my colleagues accused me of never coming right out and saying what it is in a pithy definition. That may be true, but I think I talked around it quite a bit and, for example, compared interoperability to intraoperability so that you at least know when you don’t have it. In a manner similar to what I did with “openness,” I’m going to describe here when you have more or less interoperability.
To be clear, I’m talking about software interoperability. That technically boils down to the formats used to exchange information, the protocols by which the formatted information is exchanged, and the application programming interfaces (APIs) that software implements to allow the interchange to concretely take place. Collectively I’ll call these interchange formats and methods.
Interoperability is the ability for two different and independent software applications to exchange information without loss of data, semantics, or metadata. To approximate this in English, this means that I’m going to give you some information, I’m going to share what I know about the inner relationships within the information, and I’m also going to tell you everything I might happen to know about where the information came from, and how and when it was massaged and by whom.
The words fidelity and faithfulness are often used when discussing interoperability. These synonyms both mean the exchange of information without loss or extraneous additions. Just as I can compose two sentences that mean exactly the same thing, there are multiple ways of formatting information so that fidelity can be maintained when sharing it. However, when a single collection of interchange formats and methods can be developed and maintained by a broad community of independent users, interoperability becomes much easier.
For interoperability to work, I need everything necessary in order to understand and fully implement the processing of the information. Therefore if you give me information and include something coming from somewhere else, then I must have full access to everything I need to handle that other data. This has implications about the openness and freedom from intellectual property (IP) legal entanglements of all interchange formats and methods involved.
Here are ten ways in which you can tell whether you will be able to get more or less interoperability among software applications.
- You will have more interoperability when all interchange formats and methods are fully developed as and described by community driven open standards, including formats and methods included by reference.
- You will have less interoperability when the interchange formats and methods are incompletely or ambiguously specified.
- You will have more interoperability when the interchange formats and methods are factored into smaller pieces that can be independently processed yet composed to add greater functionality.
- You will have less interoperability when there is likely to be one and only one implementation that can fully and completely implement the interchange formats and methods, either by virtue of complexity, large size of the specifications or required implementation, or lack of availability of necessary IP.
- You will have more interoperability when common features needed in multiple places are extracted and reused when necessary.
- You will have less interoperability when the interchange formats and methods are redundant and use unnecessarily different representations for the same type of data in different places.
- You will have more interoperability when the interchange formats and methods do not reflect historical processing errors in one particular software application.
- You will have less interoperability when the interchange formats and methods tie the implementations in any way to one particular platform, such as an operating system.
- You will have more interoperability when the interchange formats and methods aggressively make use of other pre-existing open interchange formats and methods wherever possible rather than using any duplicatively developed in a proprietary way.
- You will have less interoperability when the open standards process is abused to promote interchange formats and methods that only serve to perpetuate a single software provider’s marketshare and network effects.
In 2007, I predict that many of these will be applicable when discussing digital rights management for documents.