There are four different types of interoperability, System interoperability, Syntactic interoperability, Structural interoperability and Semantic interoperability. Syntactic and Semantic are the ones that is most focused on.
Syntactic interoperability: If two or more systems are capable of communicating and exchanging data. SQL standards is an example of syntactic interoperability.
Semantic interoperability: If it is possible to automatically interpret the information exchanged meaningfully and accurately in order to produce useful results. Both sides must defer to a common information exchange reference model, meaning that the information that is sent is the same that is understood by the receiver.
System interoperability: If systems are heterogen, this type of interoperability deals with that part. For example if the platforms aren't compatible with each other.
Structural interoperability: Deals with the data stuctures and data models.
Problems with interoperability can be for example naming conflics, structural conflicts (different data types, different data model constructs) and so on.Solutions to this kind of problems can be wrappers that translate the data to a either common used data representation or to the standard way to view data for one specific source in the system. The image below illustrates this.
Tightly coupled Systems
Use rigid control mechanisms that require each system to know specific details about other systems, or about the middleware itself.
Loosely coupled systems
Characterized by indirection.
Use an intermediate step to get to the final destination.
Do not need explicit knowledge of details behind particular nodes. (When coupling two, a third thing is used to mediate.)