Interoperability
Quality Attribute · Chapter 4
Interoperability
Section titled “Interoperability”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.
Challenges and pitfalls
Section titled “Challenges and pitfalls”- 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).
Locating and exchanging information
Section titled “Locating and exchanging information”- 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 tactics — orchestration 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).
Interoperability standards
Section titled “Interoperability standards”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.
Interoperability testing
Section titled “Interoperability testing”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.
Citations
Section titled “Citations”- Software Architect’s Handbook (Packt, 2018), Ch.4 “Interoperability”, pp. 245-249.