Interoperability is probably one of the most misused terms in the IT industry in these days. In a former job, I was confronted with actually defining Interoperability or finding an established definition for it. If you search for definitions for Interoperability (e.g. in Google, you will probably run into the IEEE definition). While this definition is useful as a starter, it certainly does not take you all the way of capturing what Interoperability really is.
A better and more complete definition of Interoperability can be found in the NATO Handbook and the U.S. Federal Standard 1037C. In these definitions (which are the same), there are essentially four levels of interoperability, namely:
compatibility: 1.Capability of two or more items or components of equipment or material to exist or function in the same system or environment without mutual interference. [JP1] (188) 2. In computing, the ability to execute a given program on different types of computers without modification of the program or the computers. 3. The capability that allows the substitution of one subsystem (storage facility), or of one functional unit (e.g. , hardware , software), for the originally designated system or functional unit in a relatively transparent manner, without loss of information and without the introduction of errors.
interoperability: 1. The ability of systems, units, or forces to provide services to and accept services from other systems, units or forces and to use the services so exchanged to enable them to operate effectively together. [JP1] 2. The condition achieved among communications-electronics systems or items of communications-electronics equipment when information or services can be exchanged directly and satisfactorily between them and/or their users. The degree of interoperability should be defined when referring to specific cases. [JP1] (188)
commonality: 1. A quality that applies to materiel or systems: (a) possessing like and interchangeable characteristics enabling each to be utilized, or operated and maintained by personnel trained on the others without additional specialized training; (b) having interchangeable repair parts and/or components; (c) applying to consumable items interchangeably equivalent without adjustment. 2. Pertaining to equipment or systems that have the quality of one entity possessing like and interchangeable parts with another equipment or system entity. (188) 3. Pertaining to system design in which a given part can be used in more than one place in the system, i.e., subsystems and components have parts in common. Note: Examples of commonality include the use of a firing pin that fits in many different weapons and the use of a light source that fits in many different types of fiber optic transmitters.
Now, on different layers in the network and application stack there are typically different levels of Interoperability:
There is a tendency to achieve lower levels of interoperability the higher you go up in the network and application stack. The question of why this general rule applies is quite interesting. I personally think that creating a two-dimensional matrix of levels of interoperability and layers in the network stack are quite helpful when trying to improve interoperability at higher levels.
When looking at higher level protocols, one has to recognize that they typically carry a lot more semantics than lower level ones. Protocols - as they are currently created - are quite capable of capturing syntax, but not quite so much semantics. E.g., there is virtually no semantics in the header of an Ethernet or even an IP packet, but there is a lot of semantics in how to interpret HTML tags. There is however a tendency that - eventually - the level of interoperability on a given level increases, as time passes by the different implementation of a syntax-centric protocol converge.
It would be quite interesting to develop an approach that would allow to speed up the settling on semantic terms.
Copyright by Gerald Beuchelt.
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.
In addition, my opinions can change. This weblog provides a momentary snapshot of such opinions. Existing posts that were written in the past do not necessarily reflect my current thoughts and opinions.
For the purposes of attribution, the author is "Gerald Beuchelt" and attribution shall provide a (clickable, where possible) URL to this site.
© 2010, Gerald Beuchelt
E-mail