The Interoperability files: Defining Interoperability and Integration
Something that has confused and annoyed me over quite a few years are the words Interoperability and Integration and that they are used widely in IT and are often used interchangeably to suggest that perhaps they mean the same thing. My instinct has always known that there is a significant difference but at recent meetings/workshops on the subject I have found the terms used in equal measure and that each person seems to have their own definition, all of which comprise of several 100 words that don’t necessarily provide any more clarity. There are overlaps of course, but what is interoperability and is there a difference with integration?
Here’s the story is my little voyage ...
First stop, Wikipedia and the first thing to note was that the only relevant definition for Integration in a computer context was when prefixed with the word “System”, fair enough.
Systems integration is the process of linking together different computing systems and software applications physically or functionally.( Wikipedia) |
Unlike Integration Interoperability had a top level definition of its own that spans both to systems and organisations:
Interoperability is a property referring to the ability of diverse systems and organizations to work together (inter-operate). (Wikipedia) |
Therefore, to compare one needs to either promote integration (remove the word system) such that the definition includes organisations or to demote interoperability (introduce the word system) and limit the scope of its definition. I have elected to do the latter (although either approach would work) here is the definition for System Interoperability:
System Interoperability is a property referring to the ability of diverse systems to work together (inter-operate). (Wikipedia – modified) |
The result is two extremely similar definitions that would suggest that integration and interoperability could indeed mean the same thing. However, I am still not convinced and therefore could it be that Wikipedia has an error?
For quite a while the word “diverse” stood out for me as the differentiating word but after many hours of pontificating to myself on this I had to accept that “diverse” and “different” are extremely similar words that are hard to separate in terms of meaning so Wikipedia it seems is still at fault. That said, the concept of diversity in an evolutionary context and the “future of the unknown” remained as being significant contributors to my thought process throughout as we shall see.
So the searches for other definitions came up with the IEEE definition for example which on the surface fared little better.
the ability of two or more systems or components to exchange information and to use the information that has been exchanged. (IEEE) |
Going back to Microsoft’s view on Interoperability I watched a catchy interview with Bob Muglia discussing interoperability. He talked about “systems working together” and introduced the word “disparate” meaning “very different” which I liked a lot. He also talked about the need for “standards” too – now this was interesting. Obviously, we all associate Standards with our definitions of Interoperability but does “being interoperable” require one to adopt standards? No definitions so far have actually stated this requirement, but there would clearly be value in using standards. In returning to Wikipedia and the section on Software Interoperability it states that “the lack of interoperability can be a consequence of a lack of attention to standardization” and that “interoperability is not taken for granted in the non-standards-based portion of the computing world.” So is it possible that standards mark a significant difference between integration and interoperability? Next I went to the Wikipedia definition for standardisation which lists its goals as being “to help with independence of single suppliers (commoditization), compatibility, interoperability, safety, repeatability, or quality.” Ah so that’s good and ties the two together neatly.
But obviously, one needed to check with ISO and here’s their definition for Interoperability which firmly supports the use of standards by inferring the need for some layer of separation between systems, although explicit use of standards for this purpose is avoided:
Interoperability is the capability to communicate, execute programs, or transfer data among various functional units in a manner that requires the user to have little or no knowledge of the unique characteristics of those units ( ISO/IEC 2382-01 ) |
So in one sense I thought I was close but then again does the use of some layer of separation differentiate the two terms? Maybe but it was now that a nagging thought returned how can you compare an “-ility” a “quality of being” word with a “-tion” an “action or process” word? Well according to various dictionaries that are apparently both abstract nouns so I guess I am excused to do so to some degree. But thinking about this, it’s clear that one can be involved in an “act of integration” but it makes no sense to be in an “act of interoperability” (well I don’t think so). Equally one can imagine the state of “being interoperable” but “being integration” is nonsensical (I guess one could be in the state of “being integrated” but that’s not very helpful to my argument). And I guess that’s where things clicked.
Interoperability is a quality (attribute, property or feature) of integration. (Matt Deacon, July 2009) |
In this way all forms of integration exhibits some quality of interoperability. The type of integration method or approach will dictate the level of interoperability that is achieved. Here’s an example to explain further what I mean.
If I integrate systems A and B, then by default I have automatically created some quality (or level) of interoperability. At a very minimum we now have some quality (or level) of interoperability between the systems A and B. However, depending on the integration approach I took the quality (or level) of interoperability maybe much higher such that integration with system C might prove quite easy. However, if the quality of interoperability between A & B remained low then this integration with C might prove extremely difficult. |
The key feature that the example illustrates is that by increasing the quality of interoperability when integrating systems allows one to deal with future integration requirements as yet unseen during design time. This really ties the notion of interoperability back to the concept of evolution and “diversity” and the “future of the unknown” I mentioned earlier. To quote a council member who stated that interoperability is about “future proofing”.
At this point I thought I was there and therefore returned back to the original Wikipedia definitions and to my amazement the points I thought I had uncovered were staring me in the face all the time. If you look again at interoperability you can easily replace “property” with “quality” and in the case of integration “process” could be replaced by “action”! In reality it turns out that these are the key words in understanding the definitions and more importantly the differences in the definitions between integration and interoperability, the first being the action and the second, the quality! If only Wikipedia’s definition of interoperability used the word “integration” then this path may never have needed to be trod!
With all this in mind I have provided a corrected top-level definition of system interoperability but second is a more complete statement that tries to reflect what the nature of the quality of interoperability is.
Integration is the process of linking together diverse systems or organizations. (Matt Deacon, July 2009) |
Interoperability is a property of integration that ensures a level of independence between existing and future systems or organizations. (Matt Deacon, July 2009) |
Next step is to take comments and to recommend the changes to Wikipedia.
Thanks for reading!
Technorati Tags: Interoperability,Microsoft,Integration,Architecture
Comments
Anonymous
July 05, 2009
Dear Matt, Your attempt to define – almost to a philosophical extent - Interoperability vs. Integration, is commendable, and opens the door to a new course of thought on the subject. It is never comfortable or easy to dissent from a colleague and friend, but this time I am afraid I can’t refrain from expressing my “difference of opinion”, not only being the subject so close to my heart, but almost “contractually”, given my role in the Interoperability space. This disagreement though, can only be positive and fertile, in the pure spirit of Dialectic. I can surely agree on your statement about the fundamental nature of “quality” for Interoperability, which in fact lays a seminal milestone in the attempt of differentiating the two concepts. Nonetheless, the conclusion that “If I integrate systems A and B, then by default I have automatically created some quality (or level) of interoperability” brings to a potential Aristotelian “chicken & egg” dilemma: “Have I created interoperability through the integration, or rather the inner interoperability, as a quality, of the two systems, has de facto allowed the integration in the first place? In which case, your definition “Interoperability is a quality (attribute, property or feature) of integration.” cannot be accepted as is, and should instead be turned around as” Interoperability [of systems] is a condition sine qua non to achieve system Integration” (Giampiero Nanni, July 2009). Pre-Socratic Parmenides would have had, without doubt, strong opinions on whether Integration just “comes into being”, or comes from the interoperable nature of such systems, since “nothing comes from nothing”. Similarly, your other definition “Integration is the process of linking together diverse systems or organizations.” hides a potential temporal dichotomy: is integration the “process” itself, or I can speak of “integration” only, and only if, the process has reached a logical or physical end, i.e. “integration” is the achieved result? And for all the reasons above, I have to respectfully decline your final definition “ Interoperability is a property of integration that ensures a level of independence between existing and future systems or organizations.”, and, in a classic Hegelian Thesis/Antithesis/Synthesis journey, I will rather return to the primordial vanilla-Wikipedia definition, which, if nothing else, leaves plenty of margin for any flavouring exercise, depending on the specific subject Interoperability or Integration refer to at any given time, be it “System integration”, “Organisational interoperability”, and so on. And to end my chapter in this philosophical quarrel about definitions, I would dare quoting a reminiscence from my youth (sic!). In those days, some started to discover the “Zen” as a fashionable topic, and sure enough I ended-up reading a book lent to me by a friend – “101 Zen stories”. I can’t tell whether surprisingly or unsurprisingly, but only three of them persisted into my memory to this day. One in particular referred to the impossibility of defining the “Zen” and was (I report it as I remember it today) about an old man sleeping under a tree, and being woken-up by flowers falling on him from the wide branches. To his question “What is this for?”, some voice responded ”This is to recognise you for your definition of “Zen”. “But I have never given any definition of “Zen” replied the old man. And flowers kept pouring from the tree.Anonymous
July 06, 2009
Giampiero, Many thanks for your reply for which I am extremely grateful! I have put up a further post reflecting your input that is greatly valued. http://blogs.msdn.com/matt_deacon/archive/2009/07/06/the-interoperability-files-defining-interoperability-and-integration-part-2.aspx Matt