Interoperability, more and less

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.


This entry was posted in Standards and tagged , , , . Bookmark the permalink.

One Response to Interoperability, more and less

  1. Chris Ward says:

    We’ve had this many times before, usually with IBM as the dominant vendor. Examples are
    EBCDIC ‘punch-card’ data representation
    System/360 floating-point format
    SNA networking
    GDDM printer drivers
    IBM still makes a pile of money out of all of these; but there is no way that IBM would ask ISO to declare them as standards in the face of ASCII, IEEE floating-point, TCP/IP networking, and PDF printers.

    The ‘joker in the pack’ with respect to Personal Computers seems to be the growth of public broadband.

    On the one hand, interested parties are finding each other and defining ISO-standard office productivity formats.

    On the other, according to the BBC http://news.bbc.co.uk/1/hi/business/6298641.stm , about 150 million of the 600 million or so Personal Computers on public Internet are running software other than what their owners expect. Apparently, “Criminals may overwhelm the web.”
    ‘whatever the solution, the fight against botnets was a “war” that could only be won if all parties – regulators, governments, telecoms firms, computer users and hardware and software makers – worked together.’
    And if they’re not running what their owners expect, the chance that they’ll be able to interchange documents reliably with other Personal Computers is declining all the time.

    Now, I know IBM doesn’t develop, manufacture, market, or distribute these Personal Computer things any more, so maybe doesn’t feel much responsibility; but what are we supposed to do ? Are IBM, Microsoft, Oracle, ATT, Google and Symantec supposed to bury the hatchet to work together like the BBC thinks we need to ? Who’s going to work out our commercial terms of reference, and who’s going to pay ?

    And what would be the consequence if we did ?

Comments are closed.