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.