Skip to content

Interoperability

Quality Attribute · Chapter 4

Interoperability is how well a system can exchange and use information from another system. Two systems truly interoperate only when they can both:

  • Syntactic interoperability — communicate with each other.
  • Semantic interoperability — interpret the exchanged information meaningfully and correctly.

The term is related to, and sometimes used interchangeably with, integration.

  • Even when both systems follow a standard, they may interpret its specification differently and miss the desired level of interoperability.
  • Interoperability is often scaled back or deferred when a legacy system is involved and the organization won’t modify it.
  • Interoperability tests are sometimes insufficient and miss issues.
  • Systems are sometimes released with known interoperability issues.
  • Interoperability is hard to maintain across new releases of either system — it commonly breaks and needs ongoing upkeep.
  • Legal issues can arise, especially across organizations or jurisdictions (e.g. privacy/security laws around exchanged healthcare data).
  • Discovery — the consumer may need to locate the other system at runtime by querying a known directory service on one or more attributes (e.g. a URL). Expect n levels of indirection (one location leads to another until the service is found).
  • Response handling — the service replies to the requester, forwards to another system, or broadcasts to interested listeners.
  • Exchange tacticsorchestration directs and sequences the services that are called; interface management adds capabilities to enable exchange (e.g. data buffering) or removes capabilities that should not be exposed (e.g. hiding a delete operation from external clients).

When systems come from different organizations, a common standard is a key path to interoperability. It may be a joint partnership standard, an existing industry/national/international/open standard, or an industry-wide effort (new or based on an existing one). A common technology choice helps too — agreeing on a data interchange format and protocol, e.g. JSON over HTTPS.

Beyond unit and system testing each system, integration testing between the two is critical: confirm the consumer can locate the other system and that they exchange information correctly. Keep the test environment as production-like as possible — even when both systems pass their own conformance tests against a standard, problems often surface only when the two are tested together.

  • Software Architect’s Handbook (Packt, 2018), Ch.4 “Interoperability”, pp. 245-249.