As a systems engineer, I hear people talking about system integration and interoperation a lot, and it’s not surprising. Achieving interoperation of disparate system components is no small feat. And system integration? When it’s done well, system integration is almost an art form – the devil is in the details.
System integration is an activity that involves connecting different computing systems, software applications, and communication infrastructure together in such a way that the systems, as a result, can interoperate.
If systems are interoperating, they are working together as a coordinated and functioning whole.
Interoperation is the setup of components and methods to make two or more systems work together as a combined system; allowing them to share information and to use the information as it is exchanged to accomplish goals and tasks.
Where do we see interoperation and integration in our everyday lives?
When I really need to charge my phone (I forget…quite often, really), I grab my cable and I plug it in. One end of the cable connects to the phone, and the other end to the power source. After a bit of time, the phone is charged.
This simple example (Figure 1) demonstrates an everyday integration of systems: a phone and the power system. In this case, the two interfaces are designed in such a way that they work together – no adapter or mediating component is required.
But what happens when interoperation isn’t that simple and straightforward (Figure 2)? To successfully enable systems to interoperate, they require a matching of specifications or interface standards through some means.
Say this power cable is for my cell phone and I’m in Spain, visiting a friend. I just arrived at my hotel, and my phone is dead. I grab my phone and my cable and go to plug it in and… oh. Right. Complete interface mismatch. These components were not designed in a way that allows for them to be integrated right away. But I really need to charge my phone!
Since these systems were not designed to work together, a solution must be architected if I require them to interoperate. As they are, they will not be able to interoperate without some element of mediation.
Interoperability can be achieved through a mediation layer – here, an adapter – that allows for the 2 systems to be integrated without requiring a change to one or both of their interfaces (Figure 3). As shown, I don’t need a new power cable to charge my cell phone while I’m in Europe, if I buy the adapter.
In the initial portion of this everyday integration example, I achieved interoperation between system components without the need for the mediation component – the “magic box”. When I require a mediation or adaptation component, such as a power adapter, to achieve interoperability, that interoperation is achieved by architecting a solution that allows me to integrate my systems together. Integration can be thought of as interoperation via an interface specification or standard. In software systems the mediation component is commonly a bridge or an adapter; they mediate between the interfaces of the disparate systems that you wish to integrate.