# Interoperability

**In short:** Interoperability is how well separate systems can exchange information and then use it. It depends on shared formats and shared meaning. Open standards help, and translators bridge the gaps that remain.

## Explanation

Interoperability is the degree to which systems, products or components can exchange information and use what they received. ISO/IEC 25010 places it under compatibility, next to co-existence. Co-existence is a different idea: it covers sharing one environment and its resources efficiently. (See the article Compatibility.)

**Two kinds of agreement**

Exchanging data is not enough. Both sides must also understand it.

- **Format agreement.** Both sides must handle the same data representation. HTTP content negotiation is one way to get this. A server can offer several representations of one resource. The client then picks the one that suits it best. The client's Accept header lists the media types it can process and states its preferences.
- **Meaning agreement.** Semantic interoperability means a system interprets received information meaningfully and accurately. This needs a common reference model that both sides refer to.

**Standards help**

Standards bodies publish open specifications to make interoperability easier. When two parties follow the same open specification, they need less custom work to connect.

**When formats differ**

Sometimes two systems use different data formats. A Message Translator can sit between them and convert one format into the other. It answers a specific problem: how can systems with different data formats communicate through messaging? (See the article Message Translator.)

## Example

A web shop sends orders to a warehouse system. The shop produces JSON, but the warehouse reads only XML. A translator between them converts each order from one format to the other. The two systems also need a shared meaning for each field. Both must agree, for example, on what "quantity" counts. A common reference model records that agreement.

A translator converts data between two systems that use different formats.

```mermaid
flowchart LR
  A[Shop system\nJSON orders] --> T[Message Translator]
  T --> B[Warehouse system\nXML orders]
```

## Checks

- The document states which formats or representations each interface uses, and how the parties agree on them.
- Where two systems use different data formats, the document names the translator that converts between them.
- Where systems must interpret exchanged data meaningfully, the document names the common reference model both sides use.
- Interoperability is documented separately from co-existence, as two sub-characteristics of compatibility.

## Related

- [Compatibility](https://arc.fuet.ch/concepts/quality-attributes/compatibility.md)
- [Message Translator](https://arc.fuet.ch/concepts/integration/message-translator.md)
- [ISO/IEC 25010 Product Quality Model](https://arc.fuet.ch/concepts/quality-attributes/iso-iec-25010-quality-model.md)
- [Interoperability Scenario](https://arc.fuet.ch/concepts/quality-attributes/interoperability-scenario.md)
- [Canonical Data Model](https://arc.fuet.ch/concepts/integration/canonical-data-model.md)
- [Integration](https://arc.fuet.ch/concepts/integration/integration.md)
- [Format Indicator](https://arc.fuet.ch/concepts/integration/format-identifier.md)
- [Datatype Channel](https://arc.fuet.ch/concepts/integration/datatype-channel.md)

## Sources

- [ISO 25010](https://iso25000.com/index.php/en/iso-25000-standards/iso-25010) — iso25000.com, accessed 2026-11-08
- [Interoperability - Wikipedia](https://en.wikipedia.org/wiki/Interoperability) — en.wikipedia.org, accessed 2026-11-09
- [Message Translator - Enterprise Integration Patterns](https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageTranslator.html) — enterpriseintegrationpatterns.com, accessed 2026-11-09
- [Content negotiation - HTTP | MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Content_negotiation) — developer.mozilla.org, accessed 2026-11-09
