Michael Platt's WebLog

Computer Engineering

Blogs

Integration and Interoperability

  • Comments 2
  • Likes
 

Someone asked me a really good question via my blog yesterday:

 

What is the difference between the terms interoperability and integration when it comes to software?

 

This is something I haven't really got a good definition for and that I tend to use interchangeably, probably incorrectly, so I went to look up the definitions:

 

Integration: the act of forming, coordinating, or blending into a functioning or unified whole.

 

Interoperation: The ability of two or more systems or components to exchange information and to use the information that has been exchanged.

 

When I put some more thought into it I came to the conclusion that in my mind they are different and have different use models.

 

Interoperation is a peer to peer sort of thing where the two systems interoperate between themselves sharing information (which may be state and so can change processes in one another). Interoperation is more allied to a web services set of concepts and SOA.

 

Integration is where a system is subsumed within another either conceptually (one black box holding and hiding another) or physically (a web front end added to a mainframe application). ESB's and Enterprise portals are more akin to integration systems.

 

So they are different and my usage has been sloppy, I will try to do better. Its also interesting how they naturally align with certain types of architectural models.

Comments
  • Michael Platt comes up with a nice distinction of interoperability vs. integration: Interoperation is a peer to peer sort of thing where the two systems interoperate between themselves sharing information (which may be state and so can change processes in one another). Interoperation is more allied to a web services set of concepts and SOA. Integration is where a system...

  • Like you, my use of these terms has been sloppy and your definitions will certainly help. I agree that, at a high-level, they align with different architectural approaches (loose coupling seems to be an important aspect of the distinction). However, I am not convinced it is quite that straight forward e.g. BPEL presumably fits into your 'web services set of concepts and SOA' but is used for 'forming, coordinating or blending' into a functional whole' (which is why incidentally we dislike the use of the term business process in BPEL and prefer to refer to them as integration processes).